Архитектурный / перфорационный вопрос здесь.
У меня есть локальная база данных SQL-сервера, в которой есть ~ 200 таблиц общим объемом ~ 10 ТБ. Мне нужно сделать эти данные доступными в Azure в формате Parquet для анализа данных через HDInsight Spark.
Каков оптимальный способ скопировать / преобразовать эти данные в Azure (хранилище BLOB-объектов или озеро данных) в формате Parquet?
Из-за аспекта управляемости задачи (так как ~ 200 таблиц) моим лучшим вариантом было - извлечь данные локально в общий файловый ресурс через sqlcmd, сжать его как csv.bz2 и использовать фабрику данных для копирования общего файлового ресурса (с «PreserveHierarchy») в Azure. Наконец, запустите pyspark, чтобы загрузить данные, а затем сохраните их как .parquet.
Учитывая схему таблицы, я могу автоматически сгенерировать извлечение данных SQL и сценарии Python из базы данных SQL через T-SQL.
Есть ли более быстрые и / или более удобные способы сделать это?