Выбор внешнего источника данных в DMX

С помощью Microsoft SSAS а также SQLServer 2012 В настоящее время я пытаюсь обновить мой timeseries модели с использованием новых значений из моей исходной таблицы базы данных.

Учебники Microsoft для DMX предлагая использовать EXTEND_MODEL_CASES обновить модель, используя PREDICTION JOIN и статические значения, ради автоматизации моя цель состоит в том, чтобы сделать это с помощью SELECT FROM но я не уверен, как вернуться к исходному источнику данных.

РЕДАКТИРОВАТЬ: УТОЧНЕНИЕ: приведенный ниже код не работает, так как SSAS не может получить доступ к моей таблице базы данных таким образом . Вопрос для этого: Как я могу выбрать таблицу базы данных в SSAS

 SELECT [DumpLocation_Id],
 PredictTimeSeries([TotalDumpCount],5, EXTEND_MODEL_CASES) AS PredictDmpCnt
 FROM
 [DumpForecasting_MIXED]
 NATURAL PREDICTION JOIN 
 ( select * from DumpStatistics3
  where TimeIndex >= (getdate() - 2))
 AS t

Я ожидаю получить набор результатов из указанной таблицы, вставленной в мою модель.

Скажем, моя модель содержит:

 DumpLocation_id     |  TimeIndex   |   TotalDumpCount  |
 --------------------------------------------------------
  1                  |01-01-2014    |   23
  1                  |02-01-2014    |   13
  1                  |03-01-2014    |   14          

Я хочу иметь возможность выбрать данные из моей таблицы базы данных:

  DumpLocation_id     |  TimeIndex   |   TotalDumpCount  |
 --------------------------------------------------------
  1                  |01-01-2014    |   23
  1                  |02-01-2014    |   13
  1                  |03-01-2014    |   14    
  1                  |04-01-2014    |   15
  1                  |05-01-2014    |   17

и добавьте его в мою модель, чтобы новые записи были введены в мою модель.

1 ответ

Решение

Я хотел разместить здесь то, что придумал, на случай, если кто-то столкнется с той же проблемой:

Для того, чтобы выбрать таблицы из реляционной базы данных DMX поддерживает OPENQUERY заявление (это также было реализовано в tsql)

OPENQUERY принимает строку в качестве аргумента, который содержит эквивалент tsql запрос.

пример:

OPENQUERY (relDatabaseServer, 'SELECT name FROM example.titles WHERE name = ''NewTitle''');
Другие вопросы по тегам