ORC | Формат файла
В этом документе описано, как импортировать файлы данных в формате ORC в Apache Doris, какие способы импорта поддерживаются и как их использовать в типичных сценариях.
Поддерживаемые способы импорта
В следующей таблице перечислены доступные в Doris способы импорта данных в формате ORC и сценарии их применения:
| Способ импорта | Сценарий применения | Ссылка на документацию |
|---|---|---|
| Stream Load | Отправка файлов ORC с локального компьютера или клиента по HTTP | Stream Load |
| Broker Load | Асинхронный пакетный импорт файлов ORC из объектного хранилища или HDFS | Broker 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), или другими необязательными параметрами. Полный список параметров приведён в официальной документации по каждому способу импорта.