Delta Lake в Кластерах больших данных SQL Server
Область применения: SQL Server 2019 (15.x)
Внимание
Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.
В этом руководстве рассматриваются следующие темы:
- требования и возможности Delta Lake в Кластерах больших данных SQL Server;
- процесс загрузки библиотек Delta Lake в кластерах с CU12 для использования с сеансами и заданиями Spark 2.4.
Введение
Linux Foundation Delta Lake — это уровень хранилища с открытым кодом, который переносит транзакции ACID (атомарность, согласованность, изоляция и устойчивость) для Apache Spark и рабочих нагрузок с большими данными. Дополнительные сведения о Delta Lake см. в следующих статьях:
Delta Lake в SQL Server Кластеры больших данных CU13 и более поздних версий (Spark 3)
Delta Lake устанавливается и настраивается по умолчанию в SQL Server Кластеры больших данных CU13 и более поздних версий. В дальнейших действиях нет необходимости.
В этой статье описывается настройка Delta Lake в SQL Server Кластеры больших данных CU12 и ниже.
Настройка Delta Lake в Кластерах больших данных SQL Server CU12 и ниже (Spark 2.4)
В SQL Server Кластеры больших данных CU12 или ниже можно загрузить библиотеки Delta Lake с помощью функции управления библиотеками Spark.
Примечание.
Как правило, следует использовать совместимую библиотеку последней версии. Код в этом руководстве был протестирован с помощью Delta Lake 0.6.1 в SQL Server Кластеры больших данных CU12. Delta Lake 0.6.1 совместим с Apache Spark 2.4.x, но не с более поздними версиями. Примеры предоставляются "как есть" без гарантии поддержки.
Настройка параметров библиотеки Delta Lake и конфигурации Spark
Настройте библиотеки Delta Lake с использованием приложения перед отправкой заданий. Требуется наличие следующей библиотеки:
- delta-core — эта основная библиотека обеспечивает поддержку Delta Lake.
Библиотека должна быть предназначена для Scala 2.11 и Spark 2.4.7. Это требование к SQL Server Кластеры больших данных для SQL Server 2019 с накопительным пакетом обновления 9 (CU9) или более поздней версии.
Кроме того, необходимо настроить Spark для поддержки команд SQL Spark для Delta Lake и интеграции хранилища метаданных. В примере ниже показано, как с помощью записной книжки Azure Data Studio настроить поддержку Delta Lake.
%%configure -f \
{
"conf": {
"spark.jars.packages": "io.delta:delta-core_2.11:0.6.1",
"spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"
}
}
Предоставление расположения библиотек для заданий в HDFS
Если библиотеку Delta Lake будут использовать несколько приложений, скопируйте соответствующие JAR-файлы библиотеки в общее расположение в HDFS. Затем все задания должны ссылаться на одни и те же файлы библиотеки.
Скопируйте библиотеки в общее расположение:
azdata bdc hdfs cp --from-path delta-core_2.11-0.6.1.jar --to-path "hdfs:/apps/jars/delta-core_2.11-0.6.1.jar"
Динамическая установка библиотек
Пакеты можно динамически устанавливать при отправке задания с помощью функций управления пакетами кластеров больших данных. Запуск задания задерживается из-за повторяющихся скачиваний файлов библиотеки при каждой отправке задания.
Отправка задания Spark с помощью azdata
В следующем примере используются JAR-файлы общей библиотеки в HDFS:
azdata bdc spark batch create -f hdfs:/apps/ETL-Pipelines/my-delta-lake-python-job.py \
-j '["/apps/jars/delta-core_2.11-0.6.1.jar"]' \
--config '{"spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension","spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"}' \
-n MyETLPipelinePySpark --executor-count 2 --executor-cores 2 --executor-memory 1664m
В этом примере для установки зависимостей используется динамическое управление пакетами:
azdata bdc spark batch create -f hdfs:/apps/ETL-Pipelines/my-delta-lake-python-job.py \
--config '{"spark.jars.packages":"io.delta:delta-core_2.11:0.6.1","spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension","spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"' \
-n MyETLPipelinePySpark --executor-count 2 --executor-cores 2 --executor-memory 1664m
Следующие шаги
Сведения об эффективном использовании Delta Lake см. в следующих статьях:
Сведения об отправке заданий Spark в Кластеры больших данных SQL Server с помощью azdata
или конечных точек Livy см. в статье Отправка заданий Spark с помощью программ командной строки.
Дополнительные сведения о Кластеры больших данных SQL Server и связанных сценариях см. в статье "Введение в Кластеры больших данных SQL Server".