从Azure数据仓库中使用用户主数据库。

4

我在Azure数据仓库中有一些需要创建其他Azure数据库的存储过程,然后用DW中的数据填充它们。是否有一种方法让Azure数据仓库中的存储过程创建一个单独的Azure DB?然后在新创建的Azure DB中可能创建表并填充它们?


创建 Azure 数据库从 DW 存储过程的需求是什么? - TheGameiswar
数据仓库将包含我们所有年份的数据,请求将进来对该数据进行更深层次的分析。让所有客户端直接查询数据仓库需要全天候运行和并发查询限制,这使得成本变得高不可攀。因此,将那部分数据转储到 Azure 数据库是个好主意。 - BamBamBeano
你能详细说明创建数据库和表的部分吗?它们应该是动态的还是一次性的填充? - TheGameiswar
我有大约30个表的源数据,按年份分(每个表4-5亿行)。客户需要查看特定年份的所有数据。我需要在Azure数据库中创建这些相同的30个表,并使用DW表中的数据片段填充它们。目前,它是基于过程的,几乎唯一的动态部分是新数据库的名称,然后使用该新创建的DB的完全限定名称用于所有INSERT语句(从DW到新DB)。 - BamBamBeano
2个回答

4

即使存储过程位于同一服务器上,也无法从中创建sqldatabase。在这里,我们处理两个不同的逻辑服务器(DW和SQLdatabase)。

2.对于插入部分,您可以尝试跨数据库查询,但从azureDW到SQLAzure数据库的跨数据库查询不受支持

我能想到的少数选项:

创建一个Windows应用程序,执行以下操作
1.如果不存在,则创建一个sqlazure数据库
2.如果表不存在,则在SQLdatabase中创建表
3.最后从SQLDW读取数据并将其插入SQLdatabase


我已经掌握了1和2,但第3个部分很困难。您如何从SQL数据库中读取SQLDW中的表格?外部数据源和外部表格会出现错误。反过来,将SQLDatabase添加为SQLDW的外部数据源和表格似乎也不受支持。 - BamBamBeano
使用不同的连接,在 connection1 中从 DW 读取数据并填充到数据表中,现在该数据表已填充,则插入到 SQL 数据库中。 - TheGameiswar
如果数据太大而无法使用TheGameiswar的建议,并且您可以访问它,则可以使用SSIS来执行部分或全部操作-添加一些脚本任务以执行前两个步骤,然后只需使用常规数据流即可完成最后一个步骤。 - Jeff

1

为了在两个数据库之间进行高效的数据传输,您可以使用SqlBulkCopy。相同的代码可以创建数据库和表。

要安排此操作,您可以使用Elastic Database Jobs之类的工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接