Интеграция Azure Synapse с ClickHouse
Azure Synapse — это интегрированный аналитический сервис, который объединяет большие данные, data science и хранилища данных, обеспечивая быструю аналитику в крупном масштабе. В Synapse пулы Spark предоставляют масштабируемые по запросу кластеры Apache Spark, которые позволяют пользователям выполнять сложные преобразования данных, задачи машинного обучения и интеграции с внешними системами.
В этой статье вы узнаете, как интегрировать коннектор ClickHouse Spark при работе с Apache Spark в Azure Synapse.
Добавление зависимостей коннектора
Azure Synapse поддерживает три уровня управления пакетами:
- Пакеты по умолчанию
- Уровень пула Spark
- Уровень сессии
Следуйте руководству Manage libraries for Apache Spark pools и добавьте следующие необходимые зависимости в ваше приложение Spark:
clickhouse-spark-runtime-{spark_version}_{scala_version}-{connector_version}.jar— официальный репозиторий Mavenclickhouse-jdbc-{java_client_version}-all.jar— официальный репозиторий Maven
Ознакомьтесь с документацией Spark Connector Compatibility Matrix, чтобы подобрать версии, соответствующие вашим требованиям.
Добавить ClickHouse как каталог
Существует несколько способов добавить конфигурации Spark в ваш сеанс:
- Пользовательский файл конфигурации, загружаемый вместе с сеансом
- Добавить конфигурации через интерфейс Azure Synapse
- Добавить конфигурации в блокноте Synapse
Следуйте руководству Manage Apache Spark configuration и добавьте обязательные для коннектора конфигурации Spark.
Например, вы можете настроить сеанс Spark в блокноте со следующими параметрами:
Убедитесь, что это находится в первой ячейке, как показано ниже:

Перейдите на страницу ClickHouse Spark configurations для получения дополнительных настроек.
При работе с ClickHouse Cloud обязательно задайте обязательные параметры Spark.\
Проверка настройки
Чтобы убедиться, что зависимости и конфигурации были успешно настроены, перейдите в Spark UI вашего сеанса и откройте вкладку Environment.
Там найдите параметры, связанные с ClickHouse:
