使用c#以编程方式填充SSAS数据挖掘结构

时间:2013-04-11 07:26:18

标签: c# datasource ssas ssms

长时间读者第一次发布海报。

我正在进入SQL Server Analysis Services,但是在填充我新创建的数据挖掘结构时遇到了很好的难度。

我希望从我的c#项目开始,我将其用作控制学习的中心枢纽。我想要学习的数据包含在SQL Server数据库中。

在SSMS中创建分析服务数据库后,我可以创建一个挖掘结构 -

  

创建矿业结构[DON_TEST_000]([ID_NUM] LONG KEY,     [TECK1]双重连续,[TECK2]双重连续)   保持(30%)

然后追加我的模型 -

  

更新采矿结构[DON_TEST_000]添加采矿模型   [DON_TEST_000_MODEL0]使用Microsoft_Clustering

这似乎工作正常。我的问题是 - >

1)我希望使用ADOMD.NET从我的c#项目中完成此操作。我想我可以弄清楚如何使用它创建SSAS数据库并执行上述查询。

但更关键的是,

2)我无法用数据填充我的挖掘结构 - 因为OPENQUERY(通过INSERT)功能需要'数据源'。我已经阅读过如何使用Visual Studio创建它,但我希望以编程方式从我的c#项目中创建它。


当然,我可以使用c#将Sql Server数据导入Sql Server Analysis Services数据库。这似乎很容易!


感谢您的帮助, d

2 个答案:

答案 0 :(得分:0)

不确定我是否正确使用您,但您可以从正常的SQL作业创建/处理SSAS数据库。您可以编写触发这些数据库作业的存储过程,并在c#.NET项目中调用它们。

答案 1 :(得分:0)

您必须从BIDS部署,但随后要重新处理多维数据集,您可以让SQL作业执行XMLA

例如,您将创建一个名为TestJob的作业,并且在您的XMLA数据库作业中,您将获得类似于此的内容:

<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200">
    <Object>
      <DatabaseID>[Your SSAS Database]</DatabaseID>
    </Object>
    <Type>ProcessFull</Type>
    <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
  </Process>
</Batch> 

然后您可以使用C#.NET,EXEC msdb.dbo.sp_start_job'TestJob'来运行多维数据集的重新处理。

不确定这是不是你想要的。