Плоские файлы SSIS и JSON

Каков наилучший способ получить плоские файлы JSON в SQL Server с помощью SSIS?

В настоящее время я пытался анализировать данные в компоненте скрипта, но с количеством файлов JSON, которые я анализирую (около 120 за раз), для получения данных требуется более 15 минут. Я также не считаю это очень практичный.

Есть ли способ объединить возможности SSIS и команды OPENJSON на сервере SQL? Я использую SQL Server 2016, поэтому я пытаюсь использовать эту команду в надежде, что она будет работать быстрее.

Кроме того, у меня нет проблем с получением данных JSON без потери формата. Выглядит так:

Пример JSON

Есть ли способ использовать это и преобразовать формат JSON в более нормализованный формат.


person AlanPear    schedule 15.02.2018    source источник
comment
Я всегда делал это на С# и сериализовал в класс.   -  person KeithL    schedule 15.02.2018
comment
Вы вообще используете SSIS? Если да, то используете ли вы компонент скрипта в качестве источника или преобразования?   -  person AlanPear    schedule 15.02.2018
comment
Я бы использовал компонент сценария в качестве источника, а затем, в зависимости от сложности JSON, вставлял каждый подкласс в свой собственный поток данных.   -  person KeithL    schedule 15.02.2018
comment
Идеальный! У вас случайно нет ссылок или примеров? Если бы вы могли опубликовать это ниже, я отмечу это как ответ.   -  person AlanPear    schedule 15.02.2018
comment
Я обманываю и использую ZappySys SSIS PowerPack, в котором, среди прочего, есть задачи JSON для анализа файлов/ответов API, преобразования данных JSON, записи в файлы JSON и преобразования проанализированного JSON в набор записей.   -  person digital.aaron    schedule 16.02.2018
comment
Я собираюсь сделать это, так как у меня так много проблем с плоскими файлами JSON. Это бесплатное расширение?   -  person AlanPear    schedule 16.02.2018
comment
Нет, это стоит денег. Однако они позволяют вам 30-дневную пробную версию.   -  person digital.aaron    schedule 16.02.2018


Ответы (2)


У этого парня есть пример разделения строки JSON, которая находится в столбце, который может быть хорошей простой основой.

Данные SSIS задача потока запускается сама по себе, но не как часть пакета

Вы бы хотели, чтобы класс ссылался на класс, если у вас есть подклассы. Вроде как класс заказа ссылается на класс позиции.

В этом примере у вас будет DF для заказа foreach и внутри него элемент строки foreach, включая идентификатор заказа.

У меня был хороший пример с Survey Monkey, но я не могу найти его прямо сейчас.

На самом деле я не использовал потоки данных в этом примере, а просто напрямую загружал их из C#.

Вот структура класса обезьяны-опросника, на которую я ссылался выше:

Проблемы с использованием всех членов в классе. Почему я могу использовать только список?

Удачи.

person KeithL    schedule 16.02.2018

Собственно с этим разобрался. Я добавляю файлы по одному, со всем текстом JSON в одной строке. Оттуда я могу использовать команду OPENJSON в SQL Server 2016.

person AlanPear    schedule 20.02.2018