2

长期读者第一次海报。

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

我希望从我用作控制学习的中心枢纽的 c# 项目中工作。我希望从中学习的数据包含在 SQL Server 数据库中。

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

创建采矿结构 [DON_TEST_000]([ID_NUM] 长密钥,[TECK1] 双连续,[TECK2] 双连续)与 HOLDOUT(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

4

2 回答 2

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' 来运行多维数据集的重新处理。

不确定这是否是您所追求的。

于 2013-04-11T12:33:06.963 回答
0

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

于 2013-04-11T08:37:54.847 回答