Перейти к основному содержимому

Варианты загрузки данных

Загрузка данных — это процесс очистки и преобразования сырых данных из различных источников данных в соответствии с вашими бизнес-требованиями и загрузки полученных данных в Selena для облегчения анализа.

Selena предоставляет множество вариантов для загрузки данных:

  • Методы загрузки: Insert, Stream Load, Broker Load, Pipe, Routine Load и Spark Load
  • Инструменты экосистемы: Selena Connector для Apache Kafka® (сокращенно Kafka connector), Selena Connector для Apache Spark™ (сокращенно Spark connector), Selena Connector для Apache Flink® (сокращенно Flink connector) и другие инструменты, такие как SMT, DataX, CloudCanal и Kettle Connector
  • API: интерфейс транзакций Stream Load

Каждый из этих вариантов имеет свои преимущества и поддерживает свой набор систем источников данных для извлечения.

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

Введение в варианты загрузки

Этот раздел в основном описывает характеристики и бизнес-сценарии вариантов загрузки, доступных в Selena.

Обзор вариантов загрузки

примечание

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

Методы загрузки

Insert

Бизнес-сценарий:

  • INSERT INTO VALUES: Добавление в внутреннюю таблицу небольших объемов данных.
  • INSERT INTO SELECT:
    • INSERT INTO SELECT FROM <table_name>: Добавление в таблицу результата запроса к внутренней или внешней таблице.

    • INSERT INTO SELECT FROM FILES(): Добавление в таблицу результата запроса к файлам данных в удаленном хранилище.

      примечание

      Для AWS S3 эта функция поддерживается начиная с версии 1.5.0. Для HDFS, Microsoft Azure Storage, Google GCS и S3-совместимого хранилища (такого как MinIO) эта функция поддерживается начиная с версии 1.5.0.

Формат файла:

  • INSERT INTO VALUES: SQL
  • INSERT INTO SELECT:
    • INSERT INTO SELECT FROM <table_name>: таблицы Selena
    • INSERT INTO SELECT FROM FILES(): Parquet и ORC

Объем данных: Не фиксирован (Объем данных зависит от размера памяти.)

Stream Load

Бизнес-сценарий: Пакетная загрузка данных из локальной файловой системы.

Формат файла: CSV и JSON

Объем данных: 10 ГБ или менее

Broker Load

Бизнес-сценарий:

  • Пакетная загрузка данных из HDFS или облачного хранилища, такого как AWS S3, Microsoft Azure Storage, Google GCS и S3-совместимое хранилище (например, MinIO).
  • Пакетная загрузка данных из локальной файловой системы или NAS.

Формат файла: CSV, Parquet, ORC и JSON (поддерживается с версии 3.2.3)

Объем данных: Десятки ГБ до сотен ГБ

Pipe

Бизнес-сценарий: Пакетная загрузка или потоковая передача данных из HDFS или AWS S3.

примечание

Этот метод загрузки поддерживается начиная с версии 1.5.0.

Формат файла: Parquet и ORC

Объем данных: 100 ГБ до 1 ТБ или более

Routine Load

Бизнес-сценарий: Потоковая передача данных из Kafka.

Формат файла: CSV, JSON и Avro (поддерживается с версии 3.0.1)

Объем данных: МБ до ГБ данных в виде мини-пакетов

Spark Load

Бизнес-сценарий: Пакетная загрузка данных таблиц Apache Hive™, хранящихся в HDFS, с использованием кластеров Spark.

Формат файла: CSV, Parquet (поддерживается с версии 2.0) и ORC (поддерживается с версии 2.0)

Объем данных: Десятки ГБ до ТБ

Инструменты экосистемы

Kafka connector

Бизнес-сценарий: Потоковая передача данных из Kafka.

Spark connector

Бизнес-сценарий: Пакетная загрузка данных из Spark.

Бизнес-сценарий: Потоковая передача данных из Flink.

SMT

Бизнес-сценарий: Загрузка данных из источников данных, таких как MySQL, PostgreSQL, SQL Server, Oracle, Hive, ClickHouse и TiDB через Flink.

DataX

Бизнес-сценарий: Синхронизация данных между различными разнородными источниками данных, включая реляционные базы данных (например, MySQL и Oracle), HDFS и Hive.

CloudCanal

Бизнес-сценарий: Миграция или синхронизация данных из исходных баз данных (например, MySQL, Oracle и PostgreSQL) в Selena.

Kettle Connector

Бизнес-сценарий: Интеграция с Kettle. Объединяя мощные возможности обработки и преобразования данных Kettle с высокопроизводительными возможностями хранения и анализа данных Selena, можно достичь более гибких и эффективных рабочих процессов обработки данных.

API

Интерфейс транзакций Stream Load

Бизнес-сценарий: Реализация двухфазной фиксации (2PC) для транзакций, которые выполняются для загрузки данных из внешних систем, таких как Flink и Kafka, при одновременном улучшении производительности высококонкурентных потоковых загрузок. Эта функция поддерживается начиная с версии 1.5.0.

Формат файла: CSV и JSON

Объем данных: 10 ГБ или менее

Выбор вариантов загрузки

Этот раздел перечисляет варианты загрузки, доступные для общих источников данных, помогая вам выбрать вариант, который лучше всего подходит для вашей ситуации.

Объектное хранилище

Источник данныхДоступные варианты загрузки
AWS S3
  • (Пакетная) INSERT INTO SELECT FROM FILES() (поддерживается с версии 3.1)
  • (Пакетная) Broker Load
  • (Пакетная или потоковая) Pipe (поддерживается с версии 3.2)
См. Загрузка данных из AWS S3.
Microsoft Azure Storage
  • (Пакетная) INSERT INTO SELECT FROM FILES() (поддерживается с версии 3.2)
  • (Пакетная) Broker Load
См. Загрузка данных из Microsoft Azure Storage.
Google GCS
  • (Пакетная) INSERT INTO SELECT FROM FILES() (поддерживается с версии 3.2)
  • (Пакетная) Broker Load
См. Загрузка данных из GCS.
S3-совместимое хранилище (например, MinIO)
  • (Пакетная) INSERT INTO SELECT FROM FILES() (поддерживается с версии 3.2)
  • (Пакетная) Broker Load
См. Загрузка данных из MinIO.

Локальная файловая система (включая NAS)

Источник данныхДоступные варианты загрузки
Локальная файловая система (включая NAS)
  • (Пакетная) Stream Load
  • (Пакетная) Broker Load
См. Загрузка данных из локальной файловой системы.

HDFS

Источник данныхДоступные варианты загрузки
HDFS
  • (Пакетная) INSERT INTO SELECT FROM FILES() (поддерживается с версии 3.2)
  • (Пакетная) Broker Load
  • (Пакетная или потоковая) Pipe (поддерживается с версии 3.2)
См. Загрузка данных из HDFS.
Источник данныхДоступные варианты загрузки
Apache Flink®
Apache Kafka® ПРИМЕЧАНИЕ
Если исходные данные требуют соединения нескольких таблиц и операций извлечения, преобразования и загрузки (ETL), вы можете использовать Flink для чтения и предварительной обработки данных, а затем использовать Flink connector для загрузки данных в Selena.
Apache Spark™

Озера данных

Источник данныхДоступные варианты загрузки
Apache Hive™
Apache Iceberg(Пакетная) Создайте Iceberg catalog и затем используйте INSERT INTO SELECT FROM <table_name>.
Apache Hudi(Пакетная) Создайте Hudi catalog и затем используйте INSERT INTO SELECT FROM <table_name>.
Delta Lake(Пакетная) Создайте Delta Lake catalog и затем используйте INSERT INTO SELECT FROM <table_name>.
Elasticsearch(Пакетная) Создайте Elasticsearch catalog и затем используйте INSERT INTO SELECT FROM <table_name>.
Apache Paimon(Пакетная) Создайте Paimon catalog и затем используйте INSERT INTO SELECT FROM <table_name>.

Обратите внимание, что Selena предоставляет унифицированные каталоги начиная с версии 1.5.0, чтобы помочь вам обрабатывать таблицы из источников данных Hive, Iceberg, Hudi и Delta Lake как единый источник данных без приема.

Внутренние и внешние базы данных

Источник данныхДоступные варианты загрузки
Selena(Пакетная) Создайте внешнюю таблицу Selena и затем используйте INSERT INTO VALUES для вставки нескольких записей данных или INSERT INTO SELECT FROM <table_name> для вставки данных таблицы.
ПРИМЕЧАНИЕ
Внешние таблицы Selena поддерживают только запись данных. Они не поддерживают чтение данных.
MySQL
Другие базы данных, такие как Oracle, PostgreSQL, SQL Server, ClickHouse и TiDB