如何将数据从表格模型(SSAS 表格)传输到关系数据库?
How to transfer data from Tabular model (SSAS Tabular) to Relational Database?
我是 SSAS 和表格模型多维数据集的新手。我有一个数据迁移任务,旨在将数据从表格模型导入 SQL 服务器数据库。
我尝试过 SSIS,但没有成功。使用 OLEDB 数据源将 SSAS 实例与表格数据库连接,我将数据源配置为执行和 MDX 命令“evaluate ('Tabular Table Name')”。它 returns 成功,但只返回部分记录(大约 1000 条)。因此,我将数据源重新配置为使用 OPENROWSET 并选择了我要查询的表格 table,但我总是收到与列映射相关的错误,即使列映射是正确的。
好的,我建议你试试这个方法(我用我们的 PowerPivot 数据库试过,它与 SSAS Tabular_ 非常相似:
- 运行 SSMS 并连接到 SSAS 表格实例
- 右键单击要转储到 SQL Table 和 select
Script -> Create to -> New Query Window
中的数据库。请耐心等待 SSMS 为您生成 XMLA 脚本
- 通过搜索 XMLA 脚本(关键字 = QueryDefinition)查找 SQL 用于填充 SSAS 表格 table 的查询
这是我为我们的数据库得到的:
<Partitions>
<Partition>
<ID>factLinksSeller_484c3291-2123-4391-8627-fd4b584d1726</ID>
<Name>factLinksSeller</Name>
<Annotations>
<Annotation>
<Name>IsQueryEditorUsed</Name>
<Value>True</Value>
</Annotation>
<Annotation>
<Name>QueryEditorSerialization</Name>
</Annotation>
<Annotation>
<Name>TableWidgetSerialization</Name>
</Annotation>
</Annotations>
<Source xsi:type="QueryBinding">
<DataSourceID>15719e99-95fb-44c1-8399-18a769ae1be4</DataSourceID>
<QueryDefinition>select
*
from
dbo.factLinksFull X
where X.signaturePersonID=16
</QueryDefinition>
现在您可以使用此查询通过 SSIS
将数据加载到您的 SQL 服务器数据库中
即使您使用外部工具填充 Excel 个文件,在将它们导入 SSAS 之后,这些数据也应该存储在某个地方,这样您就可以在 XMLA 脚本中检查它并决定下一步做什么
如果您有本地 PowerPivot 工作簿并且您的内存可以处理来自这些工作簿的数据集,则存在一种更简单的方法:
- 打开您的 PP 工作簿,运行PowerPivot
- 切换到数据视图
- 从您所在的选项卡中复制整个table,方法是按其左上角的图标,然后按 CTRL+C 并等待数据传输到内存
- 将您的数据粘贴到另一个 Excel 2013 文件中,因为它们现在可以处理几乎任何大小的数据,或 MS Access table。然后导入数据到SQL服务器
我是 SSAS 和表格模型多维数据集的新手。我有一个数据迁移任务,旨在将数据从表格模型导入 SQL 服务器数据库。
我尝试过 SSIS,但没有成功。使用 OLEDB 数据源将 SSAS 实例与表格数据库连接,我将数据源配置为执行和 MDX 命令“evaluate ('Tabular Table Name')”。它 returns 成功,但只返回部分记录(大约 1000 条)。因此,我将数据源重新配置为使用 OPENROWSET 并选择了我要查询的表格 table,但我总是收到与列映射相关的错误,即使列映射是正确的。
好的,我建议你试试这个方法(我用我们的 PowerPivot 数据库试过,它与 SSAS Tabular_ 非常相似:
- 运行 SSMS 并连接到 SSAS 表格实例
- 右键单击要转储到 SQL Table 和 select
Script -> Create to -> New Query Window
中的数据库。请耐心等待 SSMS 为您生成 XMLA 脚本 - 通过搜索 XMLA 脚本(关键字 = QueryDefinition)查找 SQL 用于填充 SSAS 表格 table 的查询
这是我为我们的数据库得到的:
<Partitions>
<Partition>
<ID>factLinksSeller_484c3291-2123-4391-8627-fd4b584d1726</ID>
<Name>factLinksSeller</Name>
<Annotations>
<Annotation>
<Name>IsQueryEditorUsed</Name>
<Value>True</Value>
</Annotation>
<Annotation>
<Name>QueryEditorSerialization</Name>
</Annotation>
<Annotation>
<Name>TableWidgetSerialization</Name>
</Annotation>
</Annotations>
<Source xsi:type="QueryBinding">
<DataSourceID>15719e99-95fb-44c1-8399-18a769ae1be4</DataSourceID>
<QueryDefinition>select
*
from
dbo.factLinksFull X
where X.signaturePersonID=16
</QueryDefinition>
现在您可以使用此查询通过 SSIS
将数据加载到您的 SQL 服务器数据库中即使您使用外部工具填充 Excel 个文件,在将它们导入 SSAS 之后,这些数据也应该存储在某个地方,这样您就可以在 XMLA 脚本中检查它并决定下一步做什么
如果您有本地 PowerPivot 工作簿并且您的内存可以处理来自这些工作簿的数据集,则存在一种更简单的方法:
- 打开您的 PP 工作簿,运行PowerPivot
- 切换到数据视图
- 从您所在的选项卡中复制整个table,方法是按其左上角的图标,然后按 CTRL+C 并等待数据传输到内存
- 将您的数据粘贴到另一个 Excel 2013 文件中,因为它们现在可以处理几乎任何大小的数据,或 MS Access table。然后导入数据到SQL服务器