Перейти к основному содержимому
Версия: 2.0.x

Поддержка функций: Загрузка и выгрузка данных

Поддержка функций: Загрузка и выгрузка данных

В этом документе описаны функции различных методов загрузки и выгрузки данных, поддерживаемых Selena.

Формат файла

Форматы файлов для загрузки

Источник данныхФормат файла
CSVJSON [3]ParquetORCAvroProtoBufThrift
Stream LoadЛокальные файловые системы, приложения, коннекторыДаДаПланируетсяПланируетсяПланируется
INSERT from FILESHDFS, S3, OSS, Azure, GCS, NFS(NAS) [5]Да (v1.5.2+)ПланируетсяДа (v1.5.2+)Да (v1.5.2+)Да (v1.5.2+)Планируется
Broker LoadДаДа (v1.5.2+)ДаДаПланируется
Routine LoadKafkaДаДаПланируетсяПланируетсяДа (v1.5.2+) [1]ПланируетсяПланируется
Spark LoadДаПланируетсяДаДаПланируется
КоннекторыFlink, SparkДаДаПланируетсяПланируетсяПланируется
Kafka Connector [2]KafkaДа (v1.5.2+)ПланируетсяПланируетсяДа (v1.5.2+)Планируется
PIPE [4]Соответствует INSERT from FILES
примечание

[1], [2]: Требуется Schema Registry.

[3]: JSON поддерживает различные форматы CDC. Подробнее о форматах JSON CDC, поддерживаемых Selena, см. в разделе Форматы JSON CDC.

[4]: В настоящее время для загрузки с помощью PIPE поддерживается только INSERT from FILES.

[5]: Вам нужно примонтировать устройство NAS как NFS в одну и ту же директорию каждого узла BE или CN для доступа к файлам в NFS через протокол file://.

Форматы JSON CDC

Stream LoadRoutine LoadBroker LoadINSERT from FILESKafka Connector [1]
DebeziumПланируетсяПланируетсяПланируетсяПланируетсяДа (v1.5.2+)
CanalПланируется
Maxwell
примечание

[1]: При загрузке данных в формате Debezium CDC в таблицы Primary Key в Selena необходимо настроить параметр transforms.

Форматы файлов для выгрузки

ЦельФормат файла
Формат таблицыУдалённое хранилищеCSVJSONParquetORC
INSERT INTO FILESН/ДHDFS, S3, OSS, Azure, GCS, NFS(NAS) [3]Да (v1.5.2+)ПланируетсяДа (v1.5.2+)Да (v1.5.2+)
INSERT INTO CatalogHiveHDFS, S3, OSS, Azure, GCSДа (v1.5.2+)ПланируетсяДа (v1.5.2+)Да (v1.5.2+)
IcebergHDFS, S3, OSS, Azure, GCSПланируетсяПланируетсяДа (v1.5.2+)Планируется
Hudi/DeltaПланируется
EXPORTН/ДHDFS, S3, OSS, Azure, GCSДа [1]ПланируетсяПланируетсяПланируется
PIPEПланируется [2]
примечание

[1]: Поддерживается настройка процесса Broker.

[2]: В настоящее время выгрузка данных с помощью PIPE не поддерживается.

[3]: Вам нужно примонтировать устройство NAS как NFS в одну и ту же директорию каждого узла BE или CN для доступа к файлам в NFS через протокол file://.

Параметры, связанные с форматом файла

Параметры формата файла для загрузки

Формат файлаПараметрМетод загрузки
Stream LoadINSERT from FILESBroker LoadRoutine LoadSpark Load
CSVcolumn_separatorДаДа (v1.5.2+)Да [1]
row_delimiterДаДа [2] (v1.5.2+)Да [3] (v1.5.2+)Планируется
encloseДа (v1.5.2+)Да (v1.5.2+)Да (v1.5.2+)Планируется
escape
skip_headerПланируется
trim_spaceДа (v1.5.2+)
JSONjsonpathsДаПланируетсяДа (v1.5.2+)ДаПланируется
strip_outer_array
json_root
ignore_json_sizeПланируется
примечание

[1]: Соответствующий параметр — COLUMNS TERMINATED BY.

[2]: Соответствующий параметр — ROWS TERMINATED BY.

[3]: Соответствующий параметр — ROWS TERMINATED BY.

Параметры формата файла для выгрузки

Формат файлаПараметрМетод выгрузки
INSERT INTO FILESEXPORT
CSVcolumn_separatorДа (v1.5.2+)Да
line_delimiter [1]
примечание

[1]: Соответствующий параметр при загрузке данных — row_delimiter.

Форматы сжатия

Форматы сжатия для загрузки

Формат файлаФормат сжатияМетод загрузки
Stream LoadBroker LoadINSERT from FILESRoutine LoadSpark Load
CSV
  • deflate
  • bzip2
  • gzip
  • lz4_frame
  • zstd
Да [1]Да [2]ПланируетсяПланируетсяПланируется
JSONДа (v1.5.2+) [3]ПланируетсяН/ДПланируетсяН/Д
Parquet
  • gzip
  • lz4
  • snappy
  • zlib
  • zstd
Н/ДДа [4]ПланируетсяДа [4]
ORC
примечание

[1]: В настоящее время только при загрузке файлов CSV с помощью Stream Load можно указать формат сжатия с помощью format=gzip, что указывает на файлы CSV, сжатые gzip. Форматы deflate и bzip2 также поддерживаются.

[2]: Broker Load не поддерживает указание формата сжатия файлов CSV с помощью параметра format. Broker Load определяет формат сжатия по расширению файла. Расширение файлов, сжатых gzip, — .gz, а файлов, сжатых zstd, — .zst. Кроме того, другие параметры, связанные с format, такие как trim_space и enclose, также не поддерживаются.

[3]: Поддерживается указание формата сжатия с помощью compression = gzip.

[4]: Поддерживается библиотекой Arrow. Настройка параметра compression не требуется.

Форматы сжатия для выгрузки

Формат файлаФормат сжатияМетод выгрузки
INSERT INTO FILESINSERT INTO CatalogEXPORT
HiveIcebergHudi/Delta
CSV
  • deflate
  • bzip2
  • gzip
  • lz4_frame
  • zstd
ПланируетсяПланируетсяПланируетсяПланируетсяПланируется
JSONН/ДН/ДН/ДН/ДН/ДН/Д
Parquet
  • gzip
  • lz4
  • snappy
  • zstd
Да (v1.5.2+)Да (v1.5.2+)Да (v1.5.2+)ПланируетсяН/Д
ORC

Учётные данные

Загрузка — Аутентификация

АутентификацияМетод загрузки
Stream LoadINSERT from FILESBroker LoadRoutine LoadExternal Catalog
Единичный KerberosН/ДДа (v1.5.2+)Да [1] (версии ранее v1.5.2)Да [2] (v1.5.2+)Да
Kerberos Ticket Granting Ticket (TGT)Н/ДПланируетсяДа (v1.5.2+)
Единый KDC, множественный KerberosН/Д
Базовая аутентификация доступа (пара ключей доступа, IAM Role)Н/ДДа (HDFS и S3-совместимое объектное хранилище)Да [3]Да
примечание

[1]: Для HDFS Selena поддерживает как простую аутентификацию, так и аутентификацию Kerberos.

[2]: Когда протокол безопасности установлен на sasl_plaintext или sasl_ssl, поддерживаются как аутентификация SASL, так и GSSAPI (Kerberos).

[3]: Когда протокол безопасности установлен на sasl_plaintext или sasl_ssl, поддерживаются как аутентификация SASL, так и PLAIN.

Выгрузка — Аутентификация

INSERT INTO FILESEXPORT
Единичный KerberosПланируетсяПланируется

Загрузка — Другие параметры и функции

Параметр и функцияМетод загрузки
Stream LoadINSERT from FILESINSERT from SELECT/VALUESBroker LoadPIPERoutine LoadSpark Load
partial_updateДа (v1.5.2+)Да [1] (v1.5.2+)Да (v1.5.2+)Н/ДДа (v1.5.2+)Планируется
partial_update_modeДа (v1.5.2+)ПланируетсяДа (v1.5.2+)Н/ДПланируетсяПланируется
COLUMNS FROM PATHН/ДДа (v1.5.2+)Н/ДДаН/ДН/ДДа
timezone или сессионная переменная time_zone [2]Да [3]Да [4]Да [4]Да [4]ПланируетсяДа [4]Планируется
Точность времени — микросекундыДаДаДаДа (v1.5.2+)ПланируетсяДаДа
примечание

[1]: Начиная с v1.5.2, Selena поддерживает частичные обновления в режиме Row для INSERT INTO путём указания списка столбцов.

[2]: Установка часового пояса с помощью параметра или сессионной переменной влияет на результаты, возвращаемые функциями strftime(), alignment_timestamp() и from_unixtime().

[3]: Поддерживается только параметр timezone.

[4]: Поддерживается только сессионная переменная time_zone.

Выгрузка — Другие параметры и функции

Параметр и функцияINSERT INTO FILESEXPORT
target_max_file_sizeДа (v1.5.2+)Планируется
single
Partitioned_by
Сессионная переменная time_zoneПланируется
Точность времени — микросекундыПланируетсяПланируется