Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Практические руководства
    • Все руководства
    • Развертывание веб-интерфейса Apache Kafka®
    • Миграция БД из стороннего кластера Apache Kafka® в Managed Service for Apache Kafka®
    • Перенос данных между кластерами Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL® в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL® в Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Managed Service for YDB в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for Greenplum® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for MongoDB с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for MySQL® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for OpenSearch с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for PostgreSQL с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for YDB с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Data Streams с помощью Data Transfer
    • Поставка данных из Data Streams в Managed Service for YDB с помощью Data Transfer
    • Поставка данных из Data Streams в Managed Service for Apache Kafka® с помощью Data Transfer
    • Захват изменений YDB и поставка в YDS
    • Настройка Kafka Connect для работы с кластером Managed Service for Apache Kafka®
    • Автоматизация задач Query с помощью Managed Service for Apache Airflow™
    • Отправка запросов к API Yandex Cloud через Yandex Cloud Python SDK
    • Настройка SMTP-сервера для отправки уведомлений по электронной почте
    • Добавление данных в БД ClickHouse®
    • Миграция данных в Managed Service for ClickHouse® средствами ClickHouse®
    • Миграция данных в Managed Service for ClickHouse® при помощи Data Transfer
    • Поставка данных из Managed Service for MySQL® в Managed Service for ClickHouse® с помощью Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse®
    • Обмен данными между Managed Service for ClickHouse® и Yandex Data Processing
    • Настройка Managed Service for ClickHouse® для Graphite
    • Получение данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse®
    • Получение данных из Managed Service for Apache Kafka® в ksqlDB
    • Получение данных из RabbitMQ в Managed Service for ClickHouse®
    • Сохранение потока данных Data Streams в Managed Service for ClickHouse®
    • Асинхронная репликация данных из Яндекс Метрика в ClickHouse® с помощью Data Transfer
    • Использование гибридного хранилища в Managed Service for ClickHouse®
    • Шардирование таблиц Managed Service for ClickHouse®
    • Перешардирование данных в кластере Managed Service for ClickHouse®
    • Загрузка данных из Яндекс Директ в витрину Managed Service for ClickHouse® с использованием Cloud Functions, Object Storage и Data Transfer
    • Загрузка данных из Object Storage в Managed Service for ClickHouse® с помощью Data Transfer
    • Миграция данных со сменой хранилища из Managed Service for OpenSearch в Managed Service for ClickHouse® с помощью Data Transfer
    • Загрузка данных из Managed Service for YDB в Managed Service for ClickHouse® с помощью Data Transfer
    • Интеграция Yandex Managed Service for ClickHouse® с Microsoft SQL Server через ClickHouse® JDBC Bridge
    • Миграция базы данных из Google BigQuery в Managed Service for ClickHouse®
    • Интеграция Yandex Managed Service for ClickHouse® с Oracle через ClickHouse® JDBC Bridge
    • Настройка Cloud DNS для доступа к кластеру Managed Service for ClickHouse® из других облачных сетей
    • Миграция кластера Yandex Data Processing с HDFS в другую зону доступности
    • Импорт данных из Managed Service for MySQL® в Yandex Data Processing с помощью Sqoop
    • Импорт данных из Managed Service for PostgreSQL в Yandex Data Processing с помощью Sqoop
    • Монтирование бакетов Object Storage к файловой системе хостов Yandex Data Processing
    • Работа с топиками Apache Kafka® с помощью Yandex Data Processing
    • Автоматизация работы с Yandex Data Processing с помощью Managed Service for Apache Airflow™
    • Совместная работа с таблицами Yandex Data Processing с использованием Metastore
    • Перенос метаданных между кластерами Yandex Data Processing с помощью Metastore
    • Импорт данных из Object Storage, обработка и экспорт в Managed Service for ClickHouse®
    • Миграция в Managed Service for Elasticsearch с помощью снапшотов
    • Миграция коллекций из стороннего кластера MongoDB в Managed Service for MongoDB
    • Миграция данных в Managed Service for MongoDB
    • Миграция кластера Managed Service for MongoDB с версии 4.4 на 6.0
    • Шардирование коллекций 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
    • Перенос данных из Object Storage в Managed Service for MySQL® с использованием Data Transfer
    • Поставка данных из 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
    • Захват изменений MySQL® и поставка в YDS
    • Миграция данных из Managed Service for MySQL® в Managed Service for PostgreSQL с помощью Data Transfer
    • Миграция данных из AWS RDS for PostgreSQL в Managed Service for PostgreSQL с помощью Data Transfer
    • Миграция данных из Managed Service for MySQL® в Managed Service for Greenplum® с помощью Data Transfer
    • Настройка политики индексов в Managed Service for OpenSearch
    • Миграция данных из Elasticsearch в Managed Service for OpenSearch
    • Миграция данных в Managed Service for OpenSearch из стороннего кластера OpenSearch с помощью Data Transfer
    • Загрузка данных из Managed Service for OpenSearch в Object Storage с помощью Data Transfer
    • Миграция данных из Managed Service for OpenSearch в Managed Service for YDB с помощью Data Transfer
    • Копирование данных из Managed Service for OpenSearch в Managed Service for Greenplum® с помощью Yandex Data Transfer
    • Миграция данных из Managed Service for PostgreSQL в Managed Service for OpenSearch с помощью Data Transfer
    • Аутентификация в OpenSearch Dashboards кластера Managed Service for OpenSearch с помощью Keycloak
    • Использование плагина yandex-lemmer в Managed Service for OpenSearch
    • Создание кластера PostgreSQL для «1С:Предприятия»
    • Логическая репликация PostgreSQL
    • Миграция БД из стороннего кластера PostgreSQL в Managed Service for PostgreSQL
    • Миграция БД из Managed Service for PostgreSQL
    • Поставка данных из 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 в Managed Service for YDB с помощью Data Transfer
    • Миграция БД из Managed Service for PostgreSQL в Object Storage
    • Перенос данных из Object Storage в Managed Service for PostgreSQL с использованием Data Transfer
    • Захват изменений PostgreSQL и поставка в YDS
    • Миграция данных из Managed Service for PostgreSQL в Managed Service for MySQL® с помощью Data Transfer
    • Миграция данных из Managed Service for PostgreSQL в Managed Service for OpenSearch с помощью Data Transfer
    • Решение проблем с сортировкой строк в PostgreSQL после обновления glibc
    • Миграция БД из Greenplum® в ClickHouse®
    • Миграция БД из Greenplum® в PostgreSQL
    • Выгрузка данных Greenplum® в холодное хранилище Object Storage
    • Загрузка данных из Object Storage в Managed Service for Greenplum® с помощью Data Transfer
    • Копирование данных из Managed Service for OpenSearch в Managed Service for Greenplum® с помощью Yandex Data Transfer
    • Создание внешней таблицы на базе таблицы из бакета Object Storage с помощью конфигурационного файла
    • Миграция БД из стороннего кластера Valkey™ в Yandex Managed Service for Valkey™
    • Использование кластера Yandex Managed Service for Valkey™ в качестве хранилища сессий PHP
    • Загрузка данных из Object Storage в Managed Service for YDB с помощью Data Transfer
    • Загрузка данных из Managed Service for YDB в Object Storage с помощью Data Transfer
    • Обработка аудитных логов Audit Trails
    • Обработка логов Cloud Logging
    • Обработка потока изменений Debezium
    • Анализ данных с помощью Jupyter
    • Обработка файлов детализации в сервисе Yandex Cloud Billing
    • Ввод данных в системы хранения
    • Умная обработка логов
    • Передача данных в микросервисных архитектурах
    • Миграция данных в Object Storage с помощью Data Transfer
    • Миграция данных из стороннего кластера Greenplum® или PostgreSQL в Managed Service for Greenplum® с помощью Data Transfer
    • Миграция кластера Managed Service for MongoDB
    • Миграция кластера MySQL®
    • Миграция на сторонний кластер MySQL®
    • Миграция кластера PostgreSQL
    • Создание реестра схем для поставки данных в формате Debezium CDC из Apache Kafka®
    • Автоматизация работы с помощью Yandex Managed Service for Apache Airflow™

В этой статье:

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Подготовьте внешнюю базу данных Oracle
  • Запросите данные с помощью JDBC Table Function
  • Создайте таблицу с помощью JDBC Table Engine
  • Удалите созданные ресурсы
  1. Построение Data Platform
  2. Интеграция Yandex Managed Service for ClickHouse® с Oracle через ClickHouse® JDBC Bridge

Интеграция Yandex Managed Service for ClickHouse® с Oracle через ClickHouse® JDBC Bridge

Статья создана
Yandex Cloud
Обновлена 29 мая 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Подготовьте внешнюю базу данных Oracle
  • Запросите данные с помощью JDBC Table Function
  • Создайте таблицу с помощью JDBC Table Engine
  • Удалите созданные ресурсы

С помощью ClickHouse® JDBC Bridge вы можете:

  • Запрашивать данные с помощью функции JDBC Table Function из таблицы внешней базы данных Oracle.
  • Создавать таблицы в ClickHouse® с помощью JDBC Table Engine, ссылающиеся на таблицу внешней базы данных Oracle.

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

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

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

Подробнее об облаках и каталогах.

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

В стоимость поддержки решения входят:

  • Плата за кластер Managed Service for ClickHouse®: использование вычислительных ресурсов, выделенных хостам (в том числе хостам ZooKeeper), и дискового пространства (см. тарифы Managed Service for ClickHouse®).
  • Плата за NAT-шлюз, если для хостов кластера не включен публичный доступ (см. тарифы Virtual Private Cloud).
  • Плата за использование публичных IP-адресов, если для хостов кластера включен публичный доступ (см. тарифы Virtual Private Cloud).

Подготовьте инфраструктуруПодготовьте инфраструктуру

  1. Создайте группу безопасности и настройте ее.

    Также добавьте правило для исходящего трафика:

    • Диапазон портов — 0-65535;
    • Протокол — TCP;
    • Источник — CIDR;
    • CIDR блоки — 0.0.0.0/0.

    Это правило разрешает любой исходящий трафик, что позволит ClickHouse® JDBC Bridge подключаться к внешним базам данных, в т. ч. к Oracle.

  2. Создайте кластер Managed Service for ClickHouse®.

    При создании кластера укажите группу безопасности, подготовленную ранее.

    В разделе Настройки СУБД нажмите Настроить и добавьте опцию jdbcBridge с параметрами:

    • host — IP-адрес вашей инсталляции базы данных Oracle;
    • port — 9019.
  3. Создайте NAT-шлюз для подсети, в которой будет создан кластер Managed Service for ClickHouse®, если вы не используете публичный доступ.

Подготовьте внешнюю базу данных OracleПодготовьте внешнюю базу данных Oracle

Важно

В приведенных ниже командах все сущности, создаваемые для базы данных Oracle, указываются в верхнем регистре согласно правилам именования Oracle.

  1. Убедитесь, что к вашей инсталляции внешней базы данных Oracle разрешено подключение по портам 9019 и 1521.

  2. Подключитесь к вашей инсталляции внешней базы данных Oracle и загрузите JDBC драйвер ojdbc8 в директорию /opt/drivers:

    sudo mkdir -p /opt/drivers && \
    curl -s https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/ | grep -oP '(?<=href=")[0-9][^/]+(?=/")' | sort -V | tail -n1 | xargs -I{} sudo curl -o /opt/drivers/ojdbc8-{}.jar https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/{}/ojdbc8-{}.jar
    
  3. Установите Docker Engine.

  4. Запустите ClickHouse® JDBC Bridge:

    docker run -d --name jdbc_bridge --network host -v /opt/drivers:/app/drivers clickhouse/jdbc-bridge
    

    Если у вас уже запущен контейнер, перезапустите его, чтобы новые драйверы загрузились в ClickHouse® JDBC Bridge:

    docker container restart jdbc_bridge
    
  5. Подключитесь к внешней базе данных Oracle как администратор. Например, через SQL Plus, если вы подключаетесь локально:

    sqlplus / as sysdba
    
  6. Смените сессию на нужную PDB, например на PDB1:

    ALTER SESSION SET CONTAINER = PDB1;
    
  7. Создайте пользователя JDBC_USER, от имени которого вы будете подключаться из кластера Managed Service for ClickHouse®:

    CREATE USER JDBC_USER IDENTIFIED BY <пароль_пользователя>
    DEFAULT TABLESPACE USERS
    TEMPORARY TABLESPACE TEMP
    QUOTA UNLIMITED ON USERS;
    

    Где <пароль_пользователя> — ваш пароль пользователя JDBC_USER.

    Совет

    Чтобы подключаться к разным PDB, создайте общего пользователя, добавив к его имени префикс C##. Например, C##JDBC_USER.

  8. Выдайте права, необходимые для работы ClickHouse® JDBC Bridge:

    GRANT CONNECT, RESOURCE TO JDBC_USER;
    
  9. Подключитесь от нового пользователя:

    CONNECT JDBC_USER/<пароль_пользователя>@<хост_Oracle_DB>/PDB1;
    

    Где:

    • <пароль_пользователя> — пароль пользователя JDBC_USER.
    • <хост_Oracle_DB> — IP-адрес вашей инсталляции базы данных Oracle.
  10. Создайте тестовую таблицу с именем CUSTOMERS:

    CREATE TABLE CUSTOMERS (
      NAME       VARCHAR2(100),
      EMAIL      VARCHAR2(100)
    );
    
  11. Добавьте тестовые данные:

    INSERT INTO CUSTOMERS (NAME, EMAIL) VALUES ('Angela Smith', 'angela@example.ru');
    INSERT INTO CUSTOMERS (NAME, EMAIL) VALUES ('Bob Johnson', 'bob@example.ru');
    INSERT INTO CUSTOMERS (NAME, EMAIL) VALUES ('Charlie Brown', 'charlie@example.ru');
    
    COMMIT;
    
  12. Проверьте, что данные записались:

    SELECT * FROM CUSTOMERS;
    

Запросите данные с помощью JDBC Table FunctionЗапросите данные с помощью JDBC Table Function

  1. Подключитесь к кластеру Managed Service for ClickHouse®.

  2. Отправьте запрос к внешней базе данных Oracle с помощью JDBC Table Function:

    SELECT * FROM jdbc('jdbc:oracle:thin:JDBC_USER/<пароль_пользователя>@<хост_Oracle_DB>:1521/PDB1', 'SELECT * FROM CUSTOMERS');
    

    Где:

    • <пароль_пользователя> — пароль пользователя JDBC_USER.
    • <хост_Oracle_DB> — IP-адрес вашей инсталляции базы данных Oracle.

    Если запрос выполнен успешно, то вы получите данные из внешней базы данных Oracle.

Создайте таблицу с помощью JDBC Table EngineСоздайте таблицу с помощью JDBC Table Engine

С помощью JDBC Table Engine вы можете:

  • Запрашивать данные через SELECT.

  • Добавлять новые значения через INSERT INTO, с ограничениями:

    • Таблица в базе данных кластера Managed Service for ClickHouse® должна полностью повторять структуру таблицы, на которую ссылается.
    • INSERT INTO — единственная доступная операция записи. Изменять уже существующие данные через UPDATE, DELETE, ALTER и т. п. — нельзя.
    • Если добавить новые записи и не указать в них значения для полей с автоматической генерацией (DEFAULT, GENERATED BY, SYSDATE и т. п.), эти значения сгенерированы не будут.

Чтобы использовать JDBC Table Engine:

  1. Подключитесь к кластеру Managed Service for ClickHouse®.

  2. Создайте таблицу с JDBC Table Engine на основе таблицы из внешней базы данных Oracle.

    CREATE TABLE oracle_customers
    ENGINE = JDBC(
      'jdbc:oracle:thin:JDBC_USER/<пароль_пользователя>@<хост_Oracle_DB>:1521/XEPDB1',
      'JDBC_USER',
      'CUSTOMERS'
    )
    AS SELECT *
    FROM jdbc(
      'jdbc:oracle:thin:JDBC_USER/<пароль_пользователя>@<хост_Oracle_DB>:1521/XEPDB1',
      'JDBC_USER',
      'SELECT * FROM CUSTOMERS'
    )
    LIMIT 0;
    

    Вы также можете создать таблицу с указанием только части полей, однако в таком случае вы не сможете добавлять новые значения через INSERT INTO.

  3. Проверьте результат:

    SELECT * FROM oracle_customers;
    
  4. Вставьте новую строку:

    INSERT INTO oracle_customers (NAME, EMAIL)
      VALUES ('Alice Wonderland', 'alice@example.ru');
    

    ClickHouse® JDBC Bridge сам открывает транзакцию и закрывает её. Выполнять отдельно COMMIT не нужно.

  5. Снова проверьте результат и сравните с предыдущим выводом:

    SELECT * FROM oracle_customers;
    

    Если вставка прошла успешно, вы увидите новую строку в полученном выводе.

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

Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:

  • Удалите кластер Managed Service for ClickHouse®.
  • Удалите NAT-шлюз.

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

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

Предыдущая
Миграция базы данных из Google BigQuery в Managed Service for ClickHouse®
Следующая
Настройка Cloud DNS для доступа к кластеру Managed Service for ClickHouse® из других облачных сетей
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»