Ввод данных

YDB спроектирована для приема как потоковых, так и пакетных данных. Отсутствие выделенных мастер-узлов позволяет осуществлять запись данных параллельно на все узлы базы данных, благодаря чему пропускная способность записи линейно масштабируется с ростом кластера. Выбор инструмента зависит от требований к задержке, гарантиям доставки и объему данных.

Потоковая загрузка (Real-time)

Для сценариев, требующих минимальной задержки — логи, метрики, потоки CDC.

  • Топики с Kafka API: основной и рекомендуемый способ потоковой загрузки. Топики — это встроенный в YDB аналог Apache Kafka. Благодаря поддержке Kafka API вы можете использовать существующие клиенты и системы (Apache Flink, Spark Streaming, Kafka Connect) без изменений. Ключевое преимущество — возможность транзакционной записи из топика в таблицу, которая гарантирует семантику exactly-once на уровне базы данных;
  • Плагины для Fluent Bit / Logstash: если вы используете Fluent Bit или Logstash для сбора логов, специализированные плагины позволяют писать данные напрямую в YDB, минуя промежуточные брокеры сообщений;
  • Встроенный перенос данных (Transfer): сервис Transfer позволяет в потоковом режиме трансформировать и переносить данные из топиков в таблицы.

Пакетная загрузка (Batch)

Для загрузки больших объемов исторических данных, выгрузок из других систем или результатов batch-заданий.

  • BulkUpsert — наиболее производительный способ для пакетной вставки. BulkUpsert — это специализированный API, оптимизированный для максимальной пропускной способности. Он требует меньше ресурсов по сравнению с транзакционными операциями, что позволяет загружать большие массивы данных с максимальной скоростью;
  • Федеративные запросы к данным в S3 / Data Lake — YDB позволяет выполнять SQL-запросы напрямую к данным, хранящимся в объектных хранилищах, совместимых с Amazon S3, или в других внешних системах. Это удобный способ для загрузки данных без использования отдельных ETL-инструментов;
  • Коннектор к Apache Spark сохраняет данные напрямую в таблицы YDB в многопотоковом режиме для максимально производительной записи;
  • JDBC-драйвер и нативные SDK — с их помощью можно подключить любые приложения или пайплайны, включая Apache Spark, Apache NiFi и другие решения.
Предыдущая