Как создать пакет служб SSIS для ETL JSON из запроса Python REST API на сервер MSSQL? - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь взять написанный мной скрипт на Python, который выполняет GET запросов с использованием REST API и возвращает данные в форме JSON, а затем вставляет эти данные в SQL-сервер, который мне придется создать.

Это задание нужно будет запускать каждый день хотя бы один раз.Я не знаком с созданием таблиц в MSSQL, не говоря уже о создании пакета служб SSIS или работе с ETL.

Я был бы признателен за некоторые указания относительно того, как это сделать, и насколько это реально для кого-то с небольшим реальным опытом, но концептуальным пониманием самого процесса.

Моя конечная цель состоит в том, чтобыимпортируйте эти данные в файл Power BI для создания отчетов в режиме реального времени.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я не думаю, что вы получите очень подробный ответ, так как вы не показываете ни одной пробной версии, которую вы сделали, и похоже, что вам нужен ответ с нуля.Что я сделаю, так это упомяну некоторые подходы, которые вы можете использовать для достижения своей цели, и я предоставлю некоторые ссылки для каждого подхода, чтобы получить больше информации о ней

(1) Почему SSIS?

Я не совсем понял, что вы имели в виду

Я пытаюсь взять написанный мной скрипт на Python, который выполняет запросы GET с использованием REST API и возвращает данные в форме JSON изатем вставьте эти данные в MSSQL-сервер, который мне придется создать.

Если Python Script создан успешно и проблема заключается только в его ежедневном запуске.Тогда почему бы не использовать планировщик операционной системы для выполнения этого скрипта?Если сценарий еще не создан, и он только читает из Api Rest и печатает его как вывод. затем проигнорируйте эту часть .

(2) Использование стороннего компонента

Я не думаю, что есть необходимость использовать скрипт Pythonесли вы решили использовать SSIS, поскольку он не интегрирован, и для этого может потребоваться дополнительная работа.

В службах SSIS нет специального компонента для Rest API или JSON-источника, у вас есть два варианта:

  1. Использование стороннего компонента (эта часть)
  2. Использование компонента Script (следующая часть)

На рынке Visual Studio существует множество различных сторонних компонентов, на которые вы можете сослаться.Например, ZappySys предоставляет множество компонентов, таких как:

  1. Источник JSON SSIS (файл, REST API, OData)
  2. Задача веб-службы API SSIS REST

И они опубликовали руководство по использованию этих компонентов:

(3) Использование компонента сценария

Вместо использования стороннего компонента вы можете написать компонент сценария, который получает данные из Rest API и импортирует их в SQL Server.Вы можете обратиться к одной из следующих ссылок для получения дополнительной информации:

(4) Выполнение скрипта Python с использованием задачи «Выполнить процесс»

Другое предложение - выполнить скрипт Python из Выполнить задачу процесса в плоский файл, а затем прочитать из плоского файла вSQL Server, вы можете обратиться к следующей ссылке для получения дополнительной информации:

(5) Использование IronPython

IronPython - это реализация языка программирования Python с открытым исходным кодом, тесно интегрированная с .NET Framework.IronPython может использовать библиотеки .NET Framework и Python, а другие языки .NET могут использовать код Python так же легко.

Я раньше не использовал эту библиотеку, и я не знаю, смогу ли яПомогите.Вчера я прочитал комментарий , написанный @ billinkc со ссылкой на ответ ниже, который содержит удивительное руководство о том, как это сделать:

(6) Чтение непосредственно из POWER BI

Если конечной целью является чтение выходных данных API REST в Power BI безнеобходимо сохранить данные, а затем попытаться сделать это без использования Python или SSIS:

0 голосов
/ 19 февраля 2019

Используйте такой сайт, чтобы помочь вам, поскольку вы начинаете с нуля ...

https://jsonutils.com/

Этот сайт поможет вам создавать классы и таблицы из вашего текста JSON.

С этого момента очень просто использовать задачу скрипта, чтобы извлечь данные и поместить их в таблицы.Вот простой код десериализации, который вам нужно будет настроить.

System.Net.WebClient wc = new System.Net.WebClient();

        RootObject ro=null;

        try
        {
            string resp = wc.DownloadString("https://restcountries.eu/rest/v2/alpha/" + Row.Code.ToString());

            JavaScriptSerializer js = new JavaScriptSerializer();

            ro = js.Deserialize<RootObject>(resp);
        }
        catch (Exception e)
        { }

        if (ro != null)
        {
            Row.Region = ro.Region;
            Row.SubRegion = ro.Subregion;
        }

Вам нужно будет добавить эти пространства имен

using System.Net;
using System.Collections.Generic;
using System.Web.Script.Serialization;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...