Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for ClickHouse®
  • Начало работы
    • Все руководства
    • Добавление данных в БД
    • Миграция данных в Managed Service for ClickHouse® средствами ClickHouse®
    • Миграция данных в Managed Service for ClickHouse® при помощи Data Transfer
    • Шардирование таблиц
    • Перешардирование данных в кластере
    • Использование гибридного хранилища
    • Получение данных из Managed Service for Apache Kafka®
    • Получение данных из RabbitMQ
    • Обмен данными с Yandex Data Processing
    • Настройка Yandex Cloud DNS для доступа к кластеру из других облачных сетей
    • Анализ логов Yandex Object Storage при помощи Yandex DataLens
    • Настройка Managed Service for ClickHouse® для Graphite
    • Сохранение потока данных Yandex Data Streams в Managed Service for ClickHouse®
    • Миграция базы данных из Google BigQuery
    • Поставка данных из Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Миграция данных из Яндекс Директ с использованием Yandex Cloud Functions, Yandex Object Storage и Yandex Data Transfer
    • Загрузка данных из Yandex Object Storage в Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Миграция базы данных из Greenplum® в ClickHouse®
    • Миграция базы данных из MySQL® в ClickHouse® с помощью Yandex Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse®
    • Загрузка данных из Yandex Managed Service for YDB в Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Копирование данных из Managed Service for OpenSearch в Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Ввод данных в системы хранения
    • Использование параметров
    • Примеры создания QL-чартов
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • AppMetrica: прямое подключение
    • AppMetrica: экспорт, постобработка и визуализация данных
    • Загрузка данных из Яндекс Метрика в витрину ClickHouse®
    • Yandex Tracker: экспорт и визуализация данных
    • Дашборд сети магазинов из БД ClickHouse®
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse® и Marketplace
    • Геокодинг с помощью API Яндекс Карт для визуализации в DataLens
    • Импорт данных из Object Storage, обработка и экспорт в Managed Service for ClickHouse®
    • Работа с данными с помощью Query
    • Федеративные запросы к данным с помощью Query
    • Интеграция с внешней базой данных Microsoft SQL Server через ClickHouse® JDBC Bridge
    • Интеграция с внешней базой данных Oracle через ClickHouse® JDBC Bridge
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

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

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Подготовьте инфраструктуру
  • Подготовьте внешнюю базу данных Oracle
  • Запросите данные с помощью JDBC Table Function
  • Создайте таблицу с помощью JDBC Table Engine
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Интеграция с внешней базой данных 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.

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

Предыдущая
Интеграция с внешней базой данных Microsoft SQL Server через ClickHouse® JDBC Bridge
Следующая
Взаимосвязь ресурсов сервиса
Проект Яндекса
© 2025 ООО «Яндекс.Облако»