Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Статический сайт в Object Storage
    • Сайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки с помощью Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки с помощью Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Создание сайта на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Сайт на базе 1С-Битрикс
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Публикация обновлений для игр с помощью Cloud CDN
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на OpenCart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Распознавание архива изображений в Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых ВМ
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка синхронизации часов с помощью NTP
    • Работа с группой ВМ с автомасштабированием
    • Масштабирование группы ВМ по расписанию
    • Автомасштабирование группы ВМ для обработки сообщений из очереди Message Queue
    • Обновление группы ВМ под нагрузкой
    • Передача логов с ВМ в Cloud Logging
    • Резервное копирование ВМ с помощью Hystax Acura Backup
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360 в Cloud DNS
    • Интеграция Cloud DNS и корпоративного сервиса DNS
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Запись логов балансировщика в PostgreSQL
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
  • Построение Data Platform
    • Все руководства
    • Миграция БД из стороннего кластера Apache Kafka® в Managed Service for Apache Kafka®
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse с помощью Data Transfer
    • Перенос данных между кластерами Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for YDB с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Debezium
    • Настройка Kafka Connect для работы с кластером Managed Service for Apache Kafka®
    • Управление схемами данных в Managed Service for Apache Kafka®
    • Использование Managed Schema Registry с Managed Service for Apache Kafka®
    • Использование Confluent Schema Registry с Managed Service for Apache Kafka®
    • Миграция базы данных из MySQL в ClickHouse с помощью Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Обмен данными между Managed Service for ClickHouse и Data Proc
    • Настройка Managed Service for ClickHouse для Graphite
    • Получение данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse с помощью Data Transfer
    • Получение данных из RabbitMQ в Managed Service for ClickHouse
    • Сохранение потока данных Data Streams в Managed Service for ClickHouse
    • Использование гибридного хранилища в Managed Service for ClickHouse
    • Шардирование таблиц Managed Service for ClickHouse
    • Настройка Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Настройка Cloud DNS для доступа к кластеру Managed Service for ClickHouse из других облачных сетей
    • Обмен данными между Managed Service for ClickHouse и Data Proc
    • Импорт данных из Managed Service for MySQL в Data Proc с помощью Sqoop
    • Импорт данных из Managed Service for PostgreSQL в Data Proc с помощью Sqoop
    • Использование скриптов инициализации для настройки GeeseFS в Data Proc
    • Миграция данных из стороннего кластера Elasticsearch в Managed Service for Elasticsearch с помощью Reindex API
    • Миграция коллекций из стороннего кластера MongoDB в Managed Service for MongoDB
    • Миграция данных в Managed Service for MongoDB
    • Шардирование коллекций MongoDB
    • Анализ производительности и оптимизация MongoDB
    • Миграция БД из стороннего кластера MySQL в кластер Managed Service for MySQL
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Синхронизация данных из стороннего кластера MySQL в Managed Service for MySQL с помощью Data Transfer
    • Миграция БД из Managed Service for MySQL в сторонний кластер MySQL
    • Миграция БД из Managed Service for MySQL в Object Storage с помощью Data Transfer
    • Импорт данных из Managed Service for MySQL в Data Proc с помощью Sqoop
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Debezium
    • Миграция БД из Managed Service for MySQL в Managed Service for YDB с помощью Data Transfer
    • Создание кластера PostgreSQL для «1С:Предприятия»
    • Анализ производительности и оптимизация Managed Service for PostgreSQL
    • Миграция БД из Managed Service for PostgreSQL
    • Миграция БД из стороннего кластера PostgreSQL в Managed Service for PostgreSQL
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Debezium
    • Импорт данных из Managed Service for PostgreSQL в Data Proc с помощью Sqoop
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for YDB с помощью Data Transfer
    • Миграция БД из Managed Service for PostgreSQL в Object Storage
    • Миграция БД из Greenplum® в ClickHouse
    • Миграция БД из Greenplum® в PostgreSQL
    • Миграция БД из стороннего кластера Redis в Managed Service for Redis
    • Использование кластера Managed Service for Redis в качестве хранилища сессий PHP
  • Продукты Microsoft в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая инфраструктура
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Настройки DHCP для работы с корпоративным DNS-сервером
    • Маршрутизация с помощью NAT-инстанса
    • Создание туннеля IPSec VPN
    • Установка виртуального роутера Cisco CSR 1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Создание и настройка шлюза UserGate в режиме прокси-сервера
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Настройка сети для Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Cloud Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью QL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Разработка навыка Алисы и сайта с авторизацией
  1. Построение Data Platform
  2. Обмен данными между Managed Service for ClickHouse и Data Proc

Обмен данными между Yandex Managed Service for ClickHouse и Yandex Data Proc

Статья создана
Yandex Cloud
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Выгрузите данные из Managed Service for ClickHouse
    • Подготовьте кластер Managed Service for ClickHouse
    • Запустите выгрузку из Managed Service for ClickHouse
  • Загрузите данные в Managed Service for ClickHouse
    • Подготовьте исходные данные
    • Запустите выгрузку из Data Proc
    • Проверьте загрузку данных в Managed Service for ClickHouse
  • Удалите созданные ресурсы

Чтобы настроить загрузку и выгрузку данных между кластерами Managed Service for ClickHouse и Data Proc:

  1. Подготовьте облако к работе.
  2. Выгрузите данные из Managed Service for ClickHouse.
  3. Загрузите данные в Managed Service for ClickHouse.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте облако к работе

Примечание

Разместите кластеры и виртуальную машину в одной облачной сети.

  1. Создайте облачную сеть.
  2. Создайте подсеть в зоне доступности ru-central1-c.
  3. Настройте NAT-шлюз для созданной подсети — это обязательное условие для работы кластера Data Proc.

Создайте ресурсы:

Вручную
С помощью Terraform
  1. Создайте кластер Managed Service for ClickHouse любой подходящей вам конфигурации со следующими настройками:

    • с публичным доступом к хостам кластера;
    • с базой данных db1;
    • с пользователем user1.
  2. Создайте сервисный аккаунт для кластера Data Proc . Назначьте ему роли:

    • dataproc.agent
    • dataproc.provisioner
    • monitoring.viewer.
  3. Создайте кластер Data Proc любой подходящей вам конфигурации со следующими настройками:

    • с включенной опцией UI Proxy;
    • с созданным ранее сервисным аккаунтом;
    • c компонентами:
      • HBASE
      • HDFS
      • HIVE
      • MAPREDUCE
      • SPARK
      • TEZ
      • YARN
      • ZEPPELIN
      • ZOOKEEPER
  4. Создайте виртуальную машину для подключения к кластерам Managed Service for ClickHouse и Data Proc.

  5. Подключитесь к виртуальной машине по SSH и настройте подключения к кластерам:

    • Managed Service for ClickHouse;
    • Data Proc.
  6. (Опционально) Чтобы экспортировать данные в бакет Yandex Object Storage:

    1. Создайте бакет Object Storage.
    2. Выдайте права на запись в него сервисному аккаунту кластера Data Proc.
  1. Если у вас еще нет Terraform, установите его.

  2. Скачайте файл с настройками провайдера. Поместите его в отдельную рабочую директорию и укажите значения параметров.

  3. Скачайте в ту же рабочую директорию файл конфигурации data-proc-data-exchange-with-mch.tf.

    В файле описаны:

    • Группы безопасности для кластеров и виртуальной машины.
    • Сервисный аккаунт для кластера Data Proc.
    • Бакет Object Storage.
    • Кластер Managed Service for ClickHouse.
    • Кластер Data Proc.
    • Виртуальная машина.
  4. Укажите параметры инфраструктуры в файле конфигурации data-proc-data-exchange-with-mch.tf в блоке locals:

    • folder_id — идентификатор каталога, в котором будут созданы ресурсы.
    • network_id — идентификатор созданной ранее облачной сети.
    • subnet_id — идентификатор созданной ранее подсети.
    • zone_id – зона доступности, в которой будут созданы ресурсы.
    • ch_user_name — имя пользователя базы данных db1 Managed Service for ClickHouse.
    • ch_user_password — пароль для пользователя user1 базы данных db1 Managed Service for ClickHouse.
    • vm_username — имя пользователя для виртуальной машины.
    • vm_ssh_key — абсолютный путь к публичному ключу для виртуальной машины. Подробнее см. в разделе Подключиться к виртуальной машине Linux по SSH.
    • vm_image_id — образ виртуальной машины. Выберите нужный образ из списка или используйте уже заданный образ Ubuntu 20.04 (fd8ciuqfa001h8s9sa7i).
    • dp_ssh_key — абсолютный путь к публичному ключу для кластера Data Proc. Подробнее см. в разделе SSH-подключение к хосту Data Proc.
    • bucket_name — имя бакета Object Storage. Оно должно быть уникальным в рамках Yandex Cloud.
  5. Выполните команду terraform init в директории с конфигурационными файлами. Эта команда инициализирует провайдер, указанный в конфигурационном файле, и позволяет работать с ресурсами и источниками данных провайдера.

  6. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  7. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Необходимые платные ресурсы

В стоимость поддержки обмена данными между Managed Service for ClickHouse и Data Proc входит:

  • плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
  • плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).

Выгрузите данные из Managed Service for ClickHouse

Подготовьте кластер Managed Service for ClickHouse

  1. Подключитесь к базе данных db1 кластера Managed Service for ClickHouse от имени пользователя user1.

  2. Наполните базу тестовыми данными. В качестве примера используется простая таблица с именами и возрастом людей.

    1. Создайте таблицу:

      CREATE TABLE persons (
          `name` String,
          `age` UInt8) ENGINE = MergeTree ()
      ORDER BY
          `name`;
      
    2. Наполните таблицу данными:

      INSERT INTO persons VALUES
         ('Anna', 19),
         ('Michael', 65),
         ('Alvar', 28),
         ('Lilith', 50),
         ('Max', 27),
         ('Jaimey', 34),
         ('Dmitry', 42),
         ('Qiang', 19),
         ('Augustyna', 20),
         ('Maria', 28);
      

Запустите выгрузку из Managed Service for ClickHouse

  1. Откройте веб-интерфейс Zeppelin кластера Data Proc.

  2. Нажмите ссылку Create new note и укажите параметры заметки:

    • Note name — введите произвольное имя заметки.
    • Default Interpreter — выберите spark.
  3. Нажмите кнопку Create.

  4. Чтобы сформировать датафрейм, создайте и запустите параграф с кодом. Для этого выделите нужный параграф и нажмите кнопку Run this paragraph (также можно использовать сочетание клавиш Shift+Enter).

    %spark.pyspark
    jdbcPort = 8443
    jdbcHostname = "c-<идентификатор кластера Managed Service for ClickHouse>.rw.mdb.yandexcloud.net"
    jdbcDatabase = "db1"
    jdbcUrl = f"jdbc:clickhouse://{jdbcHostname}:{jdbcPort}/{jdbcDatabase}?ssl=true"
    df = spark.read.format("jdbc") \
    .option("url", jdbcUrl) \
    .option("user","user1") \
    .option("password","<пароль к базе данных Managed Service for ClickHouse>") \
    .option("dbtable","persons") \
    .load()
    df.show()
    

    Если датафрейм сформирован успешно, ответ на запрос будет содержать таблицу с исходными данными.

  5. Чтобы выгрузить информацию из датафрейма в бакет Object Storage или таблицу Hive, создайте и запустите параграф с кодом.

    Object Storage
    Hive
    %spark.pyspark
    df.write.parquet('s3a://<имя бакета>/<директория бакета>/')
    spark.read.parquet('s3a://<имя бакета>/<директория бакета/').show()
    
    %spark.pyspark
    df.createOrReplaceTempView("mytempTable")
    spark.sql("CREATE TABLE IF NOT EXISTS persons AS SELECT * FROM mytempTable");
    spark.sql("SELECT * FROM persons").show()
    

    Если выгрузка прошла успешно, ответ на запрос будет содержать таблицу с исходными данными.

Загрузите данные в Managed Service for ClickHouse

Подготовьте исходные данные

Источником данных может быть директория HDFS или бакет Object Storage. В качестве исходных данных будет использоваться CSV-файл с именами и возрастом людей:

name,age
Anna,19
Michael,65
Fred,28
Alsou,50
Max,27
John,34
Dmitry,42
Oleg,19
Alina,20
Maria,28
Object Storage
Директория HDFS

Создайте файл example.csv с тестовыми данными и загрузите его в бакет Object Storage.

  1. Подключитесь к хосту кластера Data Proc в подкластере для хранения данных.

  2. Определите адрес сервера HDFS. Этот адрес понадобится указать при выгрузке данных в директорию HDFS.

    hdfs getconf -confKey fs.defaultFS
    
  3. Создайте файл example.csv с тестовыми данными.

  4. Создайте директорию HDFS для записи тестовых данных:

    hdfs dfs -mkdir /user/testdata
    
  5. Скопируйте файл с тестовыми данными из локальной файловой системы в директорию HDFS:

    hdfs dfs -copyFromLocal example.csv /user/testdata/example.csv
    

Запустите выгрузку из Data Proc

  1. Откройте веб-интерфейс Zeppelin кластера Data Proc.

  2. Нажмите ссылку Create new note и укажите параметры заметки:

    • Note name — введите произвольное имя заметки.
    • Default Interpreter — выберите spark.
  3. Нажмите кнопку Create.

  4. Чтобы сформировать датафрейм, создайте и запустите параграф с кодом.

    Object Storage
    Директория HDFS
    %spark.pyspark
    df = spark.read.option("header", True).csv("s3a://<имя бакета>/<директория бакета>/example.csv")
    df.show()
    
    %spark.pyspark
    df = spark.read.option("header", True).csv("hdfs://<адрес сервера HDFS>/user/testdata/example.csv")
    df.show()
    

  5. Чтобы выгрузить информацию из датафрейма в базу данных Managed Service for ClickHouse, создайте и запустите параграф с кодом.

    %spark.pyspark
    jdbcPort = 8443
    jdbcHostname = "c-<идентификатор кластера Managed Service for ClickHouse>.rw.mdb.yandexcloud.net"
    jdbcDatabase = "db1"
    jdbcUrl = f"jdbc:clickhouse://{jdbcHostname}:{jdbcPort}/{jdbcDatabase}?ssl=true"
    df.write.format("jdbc") \
    .mode("error") \
    .option("url", jdbcUrl) \
    .option("dbtable", "example") \
    .option("createTableOptions", "ENGINE = MergeTree() ORDER BY age") \
    .option("user","user1") \
    .option("password","<пароль к базе данных Managed Service for ClickHouse>") \
    .save()
    

Проверьте загрузку данных в Managed Service for ClickHouse

  1. Подключитесь к базе данных db1 кластера Managed Service for ClickHouse от имени пользователя user1.

  2. Выполните запрос:

    SELECT * FROM example;
    

    Если выгрузка прошла успешно, ответ на запрос будет содержать таблицу с данными.

Удалите созданные ресурсы

Вручную
С помощью Terraform
  • Удалите виртуальную машину.
  • Если вы зарезервировали для виртуальной машины публичный статический IP-адрес, освободите и удалите его.
  • Удалите кластеры:
    • Managed Service for ClickHouse;
    • Data Proc.
  • Если вы создавали бакет Object Storage, удалите его.

Если вы создали ресурсы с помощью Terraform:

  1. В терминале перейдите в директорию с планом инфраструктуры.

  2. Удалите конфигурационный файл data-proc-data-exchange-with-mch.tf.

  3. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    Все ресурсы, которые были описаны в конфигурационном файле data-proc-data-exchange-with-mch.tf, будут удалены.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Выгрузите данные из Managed Service for ClickHouse
  • Подготовьте кластер Managed Service for ClickHouse
  • Запустите выгрузку из Managed Service for ClickHouse
  • Загрузите данные в Managed Service for ClickHouse
  • Подготовьте исходные данные
  • Запустите выгрузку из Data Proc
  • Проверьте загрузку данных в Managed Service for ClickHouse
  • Удалите созданные ресурсы