Описать методы интеграции между пулами SQL и Spark в Azure Synapse Analytics

Завершено

После создания аналитических решений в Azure Synapse Analytics вам больше не нужно будет настраивать несколько служб для подключения кластера Apache Spark к базе данных SQL. Окружение Azure Synapse Analytics позволяет использовать обе технологии на одной интегрированной платформе. Интерфейс интегрированной платформы позволяет переключаться между Apache Spark и задачами инжиниринга данных на основе SQL в зависимости от имеющегося опыта. В результате инженер данных, ориентированный на данные Apache Spark, теперь может легко настроить обмен данными и взаимодействовать с инженером данных, использующим SQL на одной платформе.

Взаимодействие между Apache Spark и SQL обеспечивает следующие результаты.

  • Работайте с SQL и Apache Spark для того чтобы напрямую изучить и проанализировать файлы Parquet, CSV, TSV и JSON, хранящиеся в озере данных.
  • Включение быстрой масштабируемой загрузки для передачи данных между базами данных SQL и Spark.
  • Используйте общую систему метаданных, совместимую с Hive, которая позволяет вам определять таблицы на файлах в озере данных, чтобы их могли использовать как Apache Spark, так и Hive.

Возникает вопрос, как будет выполняться интеграция SQL и Apache Spark. Именно здесь соединитель Azure Synapse Apache Spark с Synapse SQL вступает в дело.

Соединитель Apache Spark для Synapse SQL в службе Azure Synapse предназначен для эффективной передачи данных между бессерверными пулами Apache Spark и выделенными пулами SQL в Azure Synapse. В настоящее время соединитель Spark для Synapse SQL в службе Azure Synapse работает только в выделенных пулах SQL, а с бессерверными пулами SQL не работает.

В рамках существующего подхода часто используется программный интерфейс (API) JavaDataBaseConnectivity (JDBC). API JDBC открывает подключение, применяет фильтры и проекции, а Apache Spark последовательно считывает данные. При наличии двух распределенных систем, таких как пулы Apache Spark и SQL, API JDBC является узким местом при последовательной передаче данных.

Существующая интеграция SQL Apache Spark

Поэтому в качестве нового подхода мы будем использовать JDBC и PolyBase. Сначала JDBC открывает подключение, использует операторы "создать внешние таблицы как выделение" (CETAS) и отправляет фильтры и проекции. Затем фильтры и проекции применяются к хранилищу данных, а данные экспортируются в параллельном режиме с помощью PolyBase. Apache Spark считывает данные в параллельном режиме в зависимости от рабочей области, подготовленной пользователем, и хранилища озера данных по умолчанию.

Проектирование интеграции SQL Apache Spark

В результате вы можете использовать коннектор пула Azure Synapse Apache Spark в Synapse SQL для эффективной передачи данных из хранилища Data Lake через Apache Spark в выделенные пулы SQL.