如何将数据从表格模型(SSAS表格)传输到关系数据库?

时间:2015-02-16 09:40:24

标签: ssas ssis-2012 ssas-tabular

我是SSAS和Tabular模型多维数据集的新手。我有一个数据迁移任务,旨在将数据从表格模型导入SQL Server数据库。

我尝试过SSIS并没有成功。使用OLEDB数据源连接SSAS实例和Tabular数据库,我配置数据源执行和MDX命令“evaluate('表格名称')”。它成功返回,但只返回部分记录数(大约1000)。所以我重新配置了数据源以使用OPENROWSET并选择了我要查询的表格表,但我总是收到与列映射相关的错误,即使列映射是正确的。

1 个答案:

答案 0 :(得分:2)

好的,我建议您尝试这种方式(我尝试使用我们的PowerPivot数据库,这与SSAS Tabular非常相似_:

  1. 运行SSMS并连接到SSAS表格实例
  2. 右键单击要转储到SQL表的数据库,然后选择Script -> Create to -> New Query Window。请耐心等待,直到SSMS为您生成XMLA脚本
  3. 通过搜索XMLA脚本(keyword = QueryDefinition)查找用于填充SSAS表格表的SQL查询
  4. 这是我为我们的数据库所获得的:

                         <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 Server数据库中

    即使您使用外部工具填充Excel文件,在将它们导入SSAS后,这些数据也应该存储在某个地方,因此您可以在XMLA脚本中进行检查,然后决定下一步该做什么

    如果您有本地PowerPivot工作簿并且您的内存可以处理来自这些数据集的数据集,那么存在一种更简单的方法:

    1. 打开PP工作簿,运行PowerPivot
    2. 切换到数据视图
    3. 通过按下左上角的图标从您所在的选项卡复制整个表格,然后按CTRL + C并等待数据传输到内存
    4. 将您的数据粘贴到另一个Excel 2013文件中,因为它们现在可以处理几乎任何大小的数据或MS Access表。然后将数据导入SQL Server