Копирование локальных данных базы данных SQL-сервера в Azure в формате Parquet

Архитектурный / перфорационный вопрос здесь.

У меня есть локальная база данных SQL-сервера, в которой есть ~ 200 таблиц общим объемом ~ 10 ТБ. Мне нужно сделать эти данные доступными в Azure в формате Parquet для анализа данных через HDInsight Spark.

Каков оптимальный способ скопировать / преобразовать эти данные в Azure (хранилище BLOB-объектов или озеро данных) в формате Parquet?

Из-за аспекта управляемости задачи (так как ~ 200 таблиц) моим лучшим вариантом было - извлечь данные локально в общий файловый ресурс через sqlcmd, сжать его как csv.bz2 и использовать фабрику данных для копирования общего файлового ресурса (с «PreserveHierarchy») в Azure. Наконец, запустите pyspark, чтобы загрузить данные, а затем сохраните их как .parquet.

Учитывая схему таблицы, я могу автоматически сгенерировать извлечение данных SQL и сценарии Python из базы данных SQL через T-SQL.

Есть ли более быстрые и / или более удобные способы сделать это?


person YuGagarin    schedule 15.05.2017    source источник


Ответы (1)


ADF идеально соответствует вашим требованиям с одноразовым перемещением данных и перемещением данных по расписанию.

Попробуйте мастер копирования ADF. С его помощью вы можете напрямую перемещать локальный SQL в blob / ADLS в формате Parquet всего за пару кликов.

Обзор действий по копированию

person Keynes Yang    schedule 15.05.2017
comment
Если я использую Мастер копирования в ADF, мне придется управлять ~ 200 действиями / наборами данных, по одному на каждую извлеченную таблицу, что неразумно. Кроме того, формат Parquet при сливе в ADF не очень хорошо сжимается, если вообще судить по моим наблюдениям. - person YuGagarin; 15.05.2017