‘Ошибка OLE DB или ODBC: [Выражение.Ошибка] Собственные запросы не поддерживаются этим значением

#.net #c#-4.0 #ssas-tabular

#.net #c #-4.0 #ssas-табличный

Вопрос:

Я пытаюсь создать модель ssas, используя следующий фрагмент кода. Я могу создать модель, когда источником является sql server, но когда источником является apache phoenix, я получаю упомянутую ошибку в заголовке. Ниже приведен рабочий и нерабочий код, по какой причине он не работает для apache phoenix?

SQL Server:

 if (srcType.Equals("Sql Server"))
        {
            dataSourceName = "Sql Server";
            objDatabase.Model.DataSources.Add(new ProviderDataSource()
            {
                Name = dataSourceName,
                Description = "A data source definition that uses explicit Windows credentials for authentication against SQL Server.",
                ConnectionString = "Provider=MSOLEDBSQL;Data Source="   strSourceServer   ";Initial Catalog="   srcDB   ";Persist Security Info=True;User ID="   srcDBUser   ";Password="   srcDBPassword,
                ImpersonationMode = Microsoft.AnalysisServices.Tabular.ImpersonationMode.ImpersonateAnonymous,
                //  Account = srcSysUser,
                // Password = srcSysPassword,
            });
        }
  

////// После формирования SQL

 Console.WriteLine("Sql--> "   sqlQuery);
                t.Name = strDesteTableName;
                t.Description = strDesteTableName;
                t.Partitions.Add(new Microsoft.AnalysisServices.Tabular.Partition()
                {
                    Name = srcTable,
                    Source = new QueryPartitionSource()
                    {
                        DataSource = objDatabase.Model.DataSources[dataSourceName],
                        Query = sqlQuery,
                    }
                });
               

                objServer.Databases.Add(objDatabase);
                objDatabase.Model.RequestRefresh(Microsoft.AnalysisServices.Tabular.RefreshType.Full);
                objDatabase.Update(UpdateOptions.ExpandFull);
  

Феникс (не работает):

 else if (srcType.Equals("phoenix"))
                {
                    dataSourceName = "DSN=Hortonworks Phoenix ODBC DSN";
                    string json = @"{""protocol"": ""odbc"",""address"": { ""options"": {""dsn"": ""Hortonworks Phoenix ODBC DSN"" } }}";

                    string credJson = @"{""AuthenticationKind"": ""UsernamePassword"",""kind"": ""Odbc"",""path"": ""dsn=Hortonworks Phoenix ODBC DSN"",""Username"": ""root"",""Password"":""D@ntl3tg0"" }";

                    objDatabase.Model.DataSources.Add(new StructuredDataSource()
                    {
                        Name = dataSourceName,
                        Description = "A data source definition that uses explicit Windows credentials for authentication against Phoenix.",
                        // ConnectionString = "Provider=MSOLAP;DSN=Hortonworks Phoenix ODBC DSN;UID=root;Pwd=D@ntl3tg0;",
                        //ImpersonationMode = Microsoft.AnalysisServices.Tabular.ImpersonationMode.ImpersonateAnonymous,
                        //Account = srcSysUser,
                        //Password = srcSysPassword,
                        ConnectionDetails = new ConnectionDetails(json),
                        Credential = new Credential(credJson)
                    });
                }



Console.WriteLine("Sql--> "   sqlQuery);
                t.Name = strDesteTableName;
                t.Description = strDesteTableName;
                t.Partitions.Add(new Microsoft.AnalysisServices.Tabular.Partition()
                {
                    Name = srcTable,
                    Source = new QueryPartitionSource()
                    {
                        DataSource = objDatabase.Model.DataSources[dataSourceName],
                        Query = sqlQuery,
                    }
                });
  

Получение ошибки:

Не удалось сохранить изменения на сервере. Возвращенная ошибка: ‘Ошибка OLE DB или ODBC: [Выражение.Ошибка] Собственные запросы не поддерживаются этим значением .. «. в Microsoft.Службы анализа.Табличный.Модель.SaveChanges (SaveOptions SaveOptions) в Microsoft.Службы анализа.Табличный.Модель.SaveChanges (SaveFlags saveFlags) в Microsoft.Службы анализа.Табличный.База данных.onAfterUpdate (параметры UpdateOptions) в Microsoft.Службы анализа.MajorObject.Update(параметры UpdateOptions, режим UpdateMode, предупреждения XmlaWarningCollection) в Microsoft.Службы анализа.MajorObject.Update(параметры UpdateOptions) в SsisExecute.Программа.Созданная база данных (Server objServer, String strCubeDBName, String strDesteTableName, String srcType, String strSourceServer, String srcDBUser, String srcDBPassword, String srcDB, String srcTable, String partitionColums, String groupByCols)