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

ORC | Формат файла

В этом документе описано, как импортировать файлы данных в формате ORC в Apache Doris, какие способы импорта поддерживаются и как их использовать в типичных сценариях.

Поддерживаемые способы импорта​

В следующей таблице перечислены доступные в Doris способы импорта данных в формате ORC и сценарии их применения:

Способ импортаСценарий примененияСсылка на документацию
Stream LoadОтправка файлов ORC с локального компьютера или клиента по HTTPStream Load
Broker LoadАсинхронный пакетный импорт файлов ORC из объектного хранилища или HDFSBroker Load
INSERT INTO FROM S3 TVFЧтение файлов ORC из S3 с помощью табличной функцииS3 TVF
INSERT INTO FROM HDFS TVFЧтение файлов ORC из HDFS с помощью табличной функцииHDFS TVF

Примеры использования​

В этом разделе приведены типичные примеры работы с форматом ORC для каждого способа импорта. Во всех примерах замените значения-заполнители, такие как <user>, <fe_host> и bucket, фактическими значениями для вашей среды.

Импорт с помощью Stream Load​

Используйте этот способ для отправки локального файла ORC в Doris по HTTP:

curl --location-trusted -u <user>:<passwd> \
-H "format: orc" \
-T example.orc \
http://<fe_host>:<fe_http_port>/api/example_db/example_table/_stream_load

Основные моменты:

  • Укажите формат данных ORC в заголовке запроса -H "format: orc".
  • Используйте -T, чтобы указать путь к локальному файлу ORC для импорта.
  • URL должен указывать целевую базу данных и целевую таблицу.

Импорт с помощью Broker Load​

Используйте этот способ для пакетного импорта файлов ORC из объектного хранилища (например, S3) или HDFS:

LOAD LABEL example_db.example_label
(
DATA INFILE("s3://bucket/example.orc")
INTO TABLE example_table
FORMAT AS "orc"
)
WITH S3
(
...
);

Основные моменты:

  • Используйте FORMAT AS "orc", чтобы явно указать формат файла данных.
  • Укажите путь к файлу ORC в DATA INFILE.
  • Укажите учётные данные для доступа к объектному хранилищу и другие параметры подключения в WITH S3 (...).

Импорт с помощью TVF​

Используйте этот способ, чтобы выполнить запрос непосредственно к удалённому файлу ORC с помощью табличной функции (TVF) и записать результат в таблицу:

INSERT INTO example_table
SELECT *
FROM S3
(
"uri" = "s3://bucket/example.orc",
"format" = "orc",
...
);

Основные моменты:

  • Укажите формат данных с помощью "format" = "orc" в параметрах TVF.
  • Используйте "uri", чтобы указать путь к файлу ORC в объектном хранилище или HDFS.
  • В предложении SELECT можно задать выбор нужных столбцов, фильтрацию или преобразование данных перед записью в целевую таблицу.

Часто задаваемые вопросы​

Вопрос 1: Обязательно ли явно указывать параметр format при импорте файлов ORC?

Да. При использовании Stream Load, Broker Load или TVF необходимо явно задать для format значение orc. В противном случае данные будут обрабатываться в формате по умолчанию (например, CSV), что приведёт к ошибке импорта.

Вопрос 2: Как выбрать между Stream Load, Broker Load и TVF при импорте файлов ORC?

  • Для локальных файлов или файлов на стороне клиента с небольшим объёмом данных предпочтителен Stream Load.
  • Для больших пакетов файлов в удалённом объектном хранилище или HDFS предпочтителен Broker Load.
  • Если во время импорта нужно выбрать только необходимые столбцы, отфильтровать или преобразовать данные, предпочтительна TVF (INSERT INTO ... SELECT FROM S3/HDFS).

Вопрос 3: Что означает ... в примерах?

Обозначение ... в примерах служит заполнителем. Замените его параметрами подключения, необходимыми для вашей среды (например, AK/SK, endpoint и region для S3), или другими необязательными параметрами. Полный список параметров приведён в официальной документации по каждому способу импорта.