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

Feature Support: Data Loading and Unloading

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

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

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

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

Источник данныхФормат файла
CSVJSON [3]ParquetORCAvroProtoBufThrift
Stream LoadЛокальные файловые системы, приложения, коннекторыДаДаБудет поддерживатьсяБудет поддерживатьсяБудет поддерживаться
INSERT from FILESHDFS, S3, OSS, Azure, GCS, NFS(NAS) [5]Да (v3.3+)Будет поддерживатьсяДа (v3.1+)Да (v3.1+)Будет поддерживаться
Broker LoadДаДа (v3.2.3+)ДаДаБудет поддерживаться
Routine LoadKafkaДаДаБудет поддерживатьсяБудет поддерживатьсяДа (v3.0+) [1]Будет поддерживатьсяБудет поддерживаться
Spark LoadДаБудет поддерживатьсяДаДаБудет поддерживаться
КоннекторыFlink, SparkДаДаБудет поддерживатьсяБудет поддерживатьсяБудет поддерживаться
Kafka Connector [2]KafkaДа (v3.0+)Будет поддерживатьсяБудет поддерживатьсяДа (v3.0+)Будет поддерживаться
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Будет поддерживатьсяБудет поддерживатьсяБудет поддерживатьсяБудет поддерживатьсяДа (v3.0+)
CanalБудет поддерживаться
Maxwell
примечание

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

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

ЦельФормат файла
Формат таблицыУдаленное хранилищеCSVJSONParquetORC
INSERT INTO FILESN/AHDFS, S3, OSS, Azure, GCS, NFS(NAS) [3]Да (v3.3+)Будет поддерживатьсяДа (v3.2+)Да (v3.3+)
INSERT INTO CatalogHiveHDFS, S3, OSS, Azure, GCSДа (v3.3+)Будет поддерживатьсяДа (v3.2+)Да (v3.3+)
IcebergHDFS, S3, OSS, Azure, GCSБудет поддерживатьсяБудет поддерживатьсяДа (v3.2+)Будет поддерживаться
Hudi/DeltaБудет поддерживаться
EXPORTN/AHDFS, 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ДаДа (v3.3+)Да [1]
row_delimiterДаДа [2] (v3.1+)Да [3] (v2.2+)Будет поддерживаться
encloseДа (v3.0+)Да (v3.0+)Да (v3.0+)Будет поддерживаться
escape
skip_headerБудет поддерживаться
trim_spaceДа (v3.0+)
JSONjsonpathsДаБудет поддерживатьсяДа (v3.2.3+)ДаБудет поддерживаться
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Да (v3.3+)Да
line_delimiter [1]
примечание

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

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

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

Формат файлаФормат сжатияМетод загрузки
Stream LoadBroker LoadINSERT from FILESRoutine LoadSpark Load
CSV
  • defalte
  • bzip2
  • gzip
  • lz4_frame
  • zstd
Да [1]Да [2]Будет поддерживатьсяБудет поддерживатьсяБудет поддерживаться
JSONДа (v3.2.7+) [3]Будет поддерживатьсяN/AБудет поддерживатьсяN/A
Parquet
  • gzip
  • lz4
  • snappy
  • zlib
  • zstd
N/AДа [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
  • defalte
  • bzip2
  • gzip
  • lz4_frame
  • zstd
Будет поддерживатьсяБудет поддерживатьсяБудет поддерживатьсяБудет поддерживатьсяБудет поддерживаться
JSONN/AN/AN/AN/AN/AN/A
Parquet
  • gzip
  • lz4
  • snappy
  • zstd
Да (v3.2+)Да (v3.2+)Да (v3.2+)Будет поддерживатьсяN/A
ORC

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

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

АутентификацияМетод загрузки
Stream LoadINSERT from FILESBroker LoadRoutine LoadExternal Catalog
Единый KerberosN/AДа (v3.1+)Да [1] (версии ранее v2.5)Да [2] (v3.1.4+)Да
Kerberos Ticket Granting Ticket (TGT)N/AБудет поддерживатьсяДа (v3.1.10+/v3.2.1+)
Единый KDC Множественный KerberosN/A
Базовая аутентификация доступа (пара ключей доступа, роль IAM)N/AДа (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Да (v3.0+)Да [1] (v3.3+)Да (v3.0+)N/AДа (v3.0+)Будет поддерживаться
partial_update_modeДа (v3.1+)Будет поддерживатьсяДа (v3.1+)N/AБудет поддерживатьсяБудет поддерживаться
COLUMNS FROM PATHN/AДа (v3.2+)N/AДаN/AN/AДа
timezone или переменная сессии time_zone [2]Да [3]Да [4]Да [4]Да [4]Будет поддерживатьсяДа [4]Будет поддерживаться
Точность времени - МикросекундыДаДаДаДа (v3.1.11+/v3.2.6+)Будет поддерживатьсяДаДа
примечание

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

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

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

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

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

Параметр и функцияINSERT INTO FILESEXPORT
target_max_file_sizeДа (v3.2+)Будет поддерживаться
single
Partitioned_by
Переменная сессии time_zoneБудет поддерживаться
Точность времени - МикросекундыБудет поддерживатьсяБудет поддерживаться