Can you connect to CosmosDB from SSAS (Tabular) using the ODBC driver for Cosmos?

时间:2018-04-18 17:54:09

标签: odbc ssas azure-cosmosdb

I have followed the instructions for setting up a new ODBC connection to CosmosDB. I would like to use this ODBC connection in an SSAS tabular project but I don't see a way to do that. I am on SSDT 15.1. When I click the "Others" data source for OLEDB/ODBC in SSAS, it only gives me build options for OLEDB. It's not clear how I would use this to connect to my CosmosDB ODBC.

Has anyone figured out how to do this? According to Microsoft it is possible but they have no instructions for it.

1 个答案:

答案 0 :(得分:1)

有可能。启动“ODBC数据源(32位)”应用程序并按照此article中的说明设置系统DSN。然后打开“ODBC数据源(64位)”并设置一个与32位DSN完全相同的系统DSN。原因是Visual Studio是32位,因此在执行某些步骤时需要32位驱动程序,但一旦SSAS将表加载到需要64位驱动程序的64位进程中的内存中。在工作站和工作区服务器上设置这些DSN(如果使用集成工作区则为本地DSN,如果使用远程工作区,则设置在开发服务器上)。

在Analysis Services表格中使用ODBC驱动程序似乎没有很好地记录。基本上你需要使用OLEDB作为ODBC驱动程序。

在SSAS模型中的Visual Studio中创建新连接时,只需键入以下连接字符串,而不是从下拉列表中选择驱动程序:

Provider=MSDASQL;DSN=YourDsnNameHere

如果您更喜欢在没有ODBC DSN的情况下更容易部署的内联连接字符串,那么您可以使用此连接字符串:

Provider=MSDASQL;DRIVER={Microsoft DocumentDB ODBC Driver};Host="https://yourcosmosdbname.documents.azure.com:443/";AuthenticationKey="authKeyHere!";LocalSchemaFile="c:\folder\yourCosmosSchema.json";KeyEncrypted=true;NumberOfRetries=5;DSNType=0;Consistency=1

无论使用哪个连接字符串,您都可能需要编写select * from CollectionName之类的查询,而不是从表格列表中选择。

如果您使用的是1400兼容级别模型(Analysis Services 2017或Azure Analysis Services),那么您应该考虑使用具有原生Cosmos DB集成的modern get data experience,这种集成更加精致。