技术控

    今日:0| 主题:63445
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

[复制链接]
清陌影 发表于 2016-10-15 06:43:34
347 4
A client wanted to upgrade their SSAS model to SSAS 2016 to take advantage of some of the features of the new level 1200 compatibility model. But they weren’t yet ready to upgrade their SSIS server from SQL 2014. This presented a problem because they had been using the Analysis Services Processing Task to process their tabular model nightly. This processing task in SSIS 2014 uses the old Analysis Management Objects , which aren’t compatible with the new SSAS tabular models.
   Attempting to use the AS Processing Task results in the following error: “[Analysis Services Execute DDL Task] Error: This command cannot be executed on database ‘MySSASDB’ because it has been defined with StorageEngineUsed set to TabularMetadata. For databases in this mode, you must use Tabular APIs to administer the database”
  The reason for keeping SSAS processing in an SSIS package was because it kept consistent logging throughout their data refresh process. So we set out to find another solution.
  The new SSAS Tabular models use Tabular Model Scripting Language (JSON) rather than XMLA. A simple process full command in TMSL might look like:
  1. {
  2.   "refresh": {
  3.     "type": "full",
  4.     "objects": [
  5.       {
  6.         "database": "MySSASDB"
  7.       }
  8.     ]
  9.   }
  10. }
复制代码
  Just pasting the JSON to process the model into an Analysis Services Execute DDL Task didn’t work. It returned the error “DDL is not valid” .
  I asked around and received a couple of solutions that worked.
  Option 1 (my less preferred option): Create an OLEDB connection manager (rather than MSOLAP) and use an Execute SQL Task.
  You can set up an OLE DB connection that looks like the below.  Create a new connection manager and choose the OLE DB connection manager type. Change the provider to Microsoft OLE DB Provider for Analysis Service 13.0 and fill in your connection information.
   

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

  You’ll see the connection manager show up in the Connection Managers pane looking like this:
   

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

  Drag in an Execute SQL task, use the previously defined connection manager and paste in the JSON. This works just fine, but feels a bit too much like a workaround rather than a solid solution to me.
  Option #2: Use an Analysis Services Execute DDL task and wrap the JSON in XMLA

  Drag in an Analysis Services Execute DDL task. Create a new connection manager by choosing New Analysis Services Connection.
   

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

  Edit your connection information, click OK, and you will end up with a connection manager that looks like this:
   

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

Process Compatibility Level 1200 SSAS Tabular Model from SSIS 2014

  Use that connection manager in the AS Execute DDL task. We can use the same JSON from earlier and wrap it in XMLA as shown below.
  1. <Statement xmlns="urn:schemas-microsoft-com:xml-analysis">
  2. {
  3.   "refresh": {
  4.     "type": "full",
  5.     "objects": [
  6.       {
  7.         "database": "MySSASDB"
  8.       }
  9.     ]
  10.   }
  11. }

  12. </Statement>
复制代码
The XMLA/JSON command can be a direct source statement or placed in a variable and referenced from the task.
  To test that the model is successfully processed, you can execute the SSIS task or package and then run the following query against the DMV.
  1. Select [catalog_name], [date_modified], [compatibility_level]
  2. from $SYSTEM.DBSCHEMA_CATALOGS where [Catalog_Name] = 'MySSASDB'
复制代码
So if you are caught between versions in SSIS and SSAS, do not despair. You can still process your new SSAS Tabular model from an SSIS package.
姜丽萍 发表于 2016-10-17 12:05:24
站位支持
回复 支持 反对

使用道具 举报

Lover. 发表于 2016-10-17 13:30:00
我是耶稣他儿子,椰子!
回复 支持 反对

使用道具 举报

gao3669858 发表于 2016-10-21 03:02:27
走自己的路,让别人打车去吧。  
回复 支持 反对

使用道具 举报

Vrince 发表于 2016-10-22 13:47:24
边撸边过
回复 支持 反对

使用道具 举报

我要投稿

推荐阅读


回页顶回复上一篇下一篇回列表
手机版/c.CoLaBug.com ( 粤ICP备05003221号 | 粤公网安备 44010402000842号 )

© 2001-2017 Comsenz Inc.

返回顶部 返回列表