Интеграция Amazon Glue с ClickHouse и Spark
ClickHouse Supported
Amazon Glue — это полностью управляемый бессерверный сервис интеграции данных от Amazon Web Services (AWS). Он упрощает поиск, подготовку и преобразование данных для аналитики, машинного обучения и разработки приложений.
Установка
Чтобы интегрировать код Glue с ClickHouse, можно использовать наш официальный коннектор Spark в Glue одним из следующих способов:
- Установить коннектор ClickHouse Glue из AWS Marketplace (рекомендуется).
- Вручную добавить JAR-файлы коннектора Spark в задачу Glue.
- AWS Marketplace
- Manual Installation
-
Подпишитесь на коннектор
Чтобы получить доступ к коннектору в своей учетной записи, подпишитесь на ClickHouse AWS Glue Connector в AWS Marketplace. -
Предоставьте необходимые разрешения
Убедитесь, что роль IAM для задачи Glue имеет необходимые разрешения, как описано в руководстве по минимальным привилегиям. -
Активируйте коннектор и создайте подключение
Активировать коннектор и создать подключение можно напрямую, перейдя по этой ссылке. Она открывает страницу создания подключения Glue с уже заполненными ключевыми полями. Укажите имя подключения и нажмите create (на этом этапе данные для подключения к ClickHouse вводить не нужно). -
Использование в задаче Glue
В задаче Glue откройте вкладкуJob detailsи разверните разделAdvanced properties. В разделеConnectionsвыберите только что созданное подключение. Коннектор автоматически добавит необходимые JAR-файлы в среду выполнения задачи.

Примечание
JAR-файлы, используемые в коннекторе Glue, собраны для Spark 3.3, Scala 2 и Python 3. Обязательно выберите эти версии при настройке задачи Glue.
Чтобы вручную добавить необходимые JAR-файлы, выполните следующие действия:
- Загрузите следующие JAR-файлы в S3 бакет:
clickhouse-jdbc-0.6.X-all.jarиclickhouse-spark-runtime-3.X_2.X-0.8.X.jar. - Убедитесь, что задача Glue имеет доступ к этому бакету.
- На вкладке
Job detailsпрокрутите страницу вниз, разверните списокAdvanced propertiesи укажите путь к JAR-файлам в полеDependent JARs path:

Примеры
- Scala
- Python
Подробнее см. в документации по Spark.