2015-02-16 3 views
0

Я новичок в кубах модели SSAS и Tabular. У меня есть задача переноса данных, которая направлена ​​на импорт данных из табличной модели в базу данных SQL Server.Как перенести данные из табличной модели (таблицей SSAS) в реляционную базу данных?

Я пробовал SSIS с успехом. Используя источник данных OLEDB, подключенный к SSAS с табличной базой данных, я настроил источник данных для выполнения и команду MDX «оценить (« Табличное имя таблицы »)». Он возвращается успешно, но возвращается только частичное количество записей (около 1000). Поэтому я переконфигурировал источник данных для использования OPENROWSET и выбрал табличную таблицу, которую я хочу запросить, но всегда получаю сообщение об ошибке, связанном с отображением столбцов, даже если сопоставление столбцов является правильным.

+0

Зачем вам это нужно? Ваша табличка SSAS заполняется из той же базы данных SQL, поэтому почему бы просто не использовать запросы, которые используются в проекте Tabular? – George

+0

Длинная история. У нас есть несколько ExcelFiles с данными PowerPivot, которые были заполнены из представлений SQL в базе данных отношений, которая была результатом приложения для отчетов. Из-за ужасной производительности PowerPivot приложение для отчетов было изменено для передачи данных в куб SSAS вместо файлов PowerPivot с помощью новых представлений SQL. Схема новых представлений сильно отличается от представлений, которые загружали файлы PowerPivot. Теперь нам нужно импортировать старые файлы Excel/PowerPivot в новый куб SSAS, но мы не сможем сделать это, не выполняя преобразования, чтобы выровнять их с новой схемой. –

+0

В принципе, нам нужно передать Cube данными из файлов Old PowerPivot через новые представления SQL. Нам удалось импортировать файлы excel в табличную модель. Теперь нам нужно получить его в реляционной базе данных, чтобы иметь возможность выполнять преобразования и комбинировать новые виды. Любая идея будет очень оценена. –

ответ

2

Хорошо, я предлагаю вам попробовать этот способ (я пробовал с нашими базами данных PowerPivot, который очень похож на SSAS Tabular_:

  1. Запуск SSMS и подключения к экземпляру SSAS табличный
  2. правой кнопкой мыши базы данных вы хотите сбросить в SQL таблицу и выберите Script -> Create to -> New Query Window. Будьте терпеливы и ждать, пока SSMS генерирует XMLA скрипт для вас
  3. Найти запросы SQL, которые были использованы для заполнения SSAS табличных таблиц с помощью функции поиска XMLA скрипта (ключевого слова = QueryDefinition)

Это то, что я получил для нашей базы данных:

     <Partitions> 
          <Partition> 
           <ID>factLinksSeller_484c3291-2123-4391-8627-fd4b584d1726</ID> 
           <Name>factLinksSeller</Name> 
           <Annotations> 
            <Annotation> 
             <Name>IsQueryEditorUsed</Name> 
             <Value>True</Value> 
            </Annotation> 
            <Annotation> 
             <Name>QueryEditorSerialization</Name> 
            </Annotation> 
            <Annotation> 
             <Name>TableWidgetSerialization</Name> 
            </Annotation> 
           </Annotations> 
           <Source xsi:type="QueryBinding"> 
            <DataSourceID>15719e99-95fb-44c1-8399-18a769ae1be4</DataSourceID> 
            <QueryDefinition>select 
                 * 
                from 
                 dbo.factLinksFull X 
                where X.signaturePersonID=16 
            </QueryDefinition> 

Теперь вы можете использовать эти запросы, чтобы загрузить данные в вашу БД SQL Server с помощью SSIS

Даже если вы заполнили файлы Excel с помощью внешнего инструмента, после того, как импортируя их в SSAS, эти данные должны храниться где-нибудь, поэтому вы можете проверить его в сценарии XMLA и принять решение о том, что делать дальше

Существует гораздо более простой способ сделать это, если у вас есть местные книги PowerPivot и ваши память может обрабатывать наборы данных от таких:

  1. Откройте PP книгу, запустить PowerPivot
  2. Переключение в данных Просмотр
  3. Копировать всю таблицу на вкладке вы находитесь, нажав значок в левом верхнем углу его, а затем нажмите CTRL + C и подождите, пока данные будут перенесены в память.
  4. Вставьте данные в другой файл Excel 2013, так как теперь они могут обрабатывать практически любой размер данных или таблицу MS Access. Затем импортируйте данные в SQL Server
+0

Это очень полезный совет, но у нас больше нет точных данных в базе данных. Файлы PowerPivot служат в качестве исторического моментального снимка исходного БД, который сейчас очень отличается. Поэтому нам все еще нужны данные в силовой части (которая не входит в табличную модель), которая должна быть перенесена в реляционную базу данных. –

+0

обновил мой ответ, однако я проверил это на максимальных ~ 1 млн. Наборов данных в PP – George