21.1. Функции для чтения OLAP-данных из хранилища #
-
read_parquet(path TEXT or TEXT[],#необязательные_параметры) returns SETOFduckdb.row Читает Parquet-файл из хранилища.
Возвращает строки DuckDB. Их можно расширить с помощью
*или выбрать конкретные столбцы с помощью синтаксисаr['имя_столбца']. Чтобы выбрать конкретные столбцы, присвойте вызову функции простой псевдоним, напримерr:SELECT * FROM read_parquet('file.parquet'); SELECT r['id'], r['name'] FROM read_parquet('file.parquet') r WHERE r['age'] > 21; SELECT COUNT(*) FROM read_parquet('file.parquet');Обязательные параметры:
Имя
Тип
Описание
pathtextилиtext[]Путь к хранилищу с Parquet-файлами, которые необходимо прочитать. Может содержать шаблон поиска (glob) или массив файлов.
Необязательные параметры повторяют параметры функции DuckDB
read_parquet. Чтобы указать дополнительные параметры, используйтепараметр := 'значение'.-
read_csv(path TEXT or TEXT[],#необязательные_параметры) returns SETOFduckdb.row Читает CSV-файл из хранилища.
Возвращает строки DuckDB. Их можно расширить с помощью
*или выбрать конкретные столбцы с помощью синтаксисаr['имя_столбца']. Чтобы выбрать конкретные столбцы, присвойте вызову функции простой псевдоним, напримерr:SELECT * FROM read_csv('file.csv'); SELECT r['id'], r['name'] FROM read_csv('file.csv') r WHERE r['age'] > 21; SELECT COUNT(*) FROM read_csv('file.csv');Обязательные параметры:
Имя
Тип
Описание
pathtextилиtext[]Путь к хранилищу с CSV-файлами, которые необходимо прочитать. Может содержать шаблон поиска (glob) или массив файлов.
Необязательные параметры повторяют параметры функции DuckDB
read_csv. Чтобы указать дополнительные параметры, используйтепараметр := 'значение'.Примечание
columnsне поддерживается в настоящее время.nullstrдолжен быть массивом (TEXT[])
-
read_json(path TEXT or TEXT[],#необязательные_параметры) returns SETOFduckdb.row Читает JSON-файл из хранилища.
Возвращает строки DuckDB. Их можно расширить с помощью
*или выбрать конкретные столбцы с помощью синтаксисаr['имя_столбца']. Чтобы выбрать конкретные столбцы, присвойте вызову функции простой псевдоним, напримерr:Пример 21.1.
SELECT * FROM read_parquet('file.parquet'); SELECT r['id'], r['name'] FROM read_parquet('file.parquet') r WHERE r['age'] > 21; SELECT COUNT(*) FROM read_parquet('file.parquet');Обязательные параметры:
Имя
Тип
Описание
pathtextилиtext[]Путь к хранилищу с JSON-файлами, которые необходимо прочитать. Может содержать шаблон поиска (glob) или массив файлов.
Необязательные параметры повторяют параметры функции DuckDB
read_json. Чтобы указать дополнительные параметры, используйтепараметр := 'значение'.Примечание
В настоящее время
columnsне поддерживается.-
iceberg_scan(path TEXT,#необязательные_параметры) returns SETOFduckdb.row Читает таблицу iceberg из хранилища.
Возвращает строки DuckDB. Их можно расширить с помощью
*или выбрать конкретные столбцы с помощью синтаксисаr['имя_столбца']. Чтобы выбрать конкретные столбцы, присвойте вызову функции простой псевдоним, напримерr:Пример 21.2.
SELECT * FROM iceberg_scan('data/iceberg/table'); SELECT r['id'], r['name'] FROM iceberg_scan('data/iceberg/table') r WHERE r['age'] > 21; SELECT COUNT(*) FROM iceberg_scan('data/iceberg/table');Чтобы использовать
iceberg_scan, включите расширение iceberg:SELECT duckdb.install_extension('iceberg');Обязательные параметры:
Имя
Тип
Описание
pathtextПуть к хранилищу с таблицей iceberg, которую необходимо прочитать.
Необязательные параметры повторяют параметры функции DuckDB
iceberg_scan. Чтобы указать дополнительные параметры, используйтепараметр := 'значение'.Необязательные параметры:
Имя
Тип
Значение по умолчанию
Описание
allowed_moved_pathsbooleanfalse
Позволяет убедиться, что было выполнено разрешение пути. Это позволяет сканировать таблицы iceberg, расположение которых было изменено.
modetext''
—
metadata_compression_codectext'none'—
skip_schema_inferencebooleanfalse
—
versiontext'version-hint.text'—
version_name_formattext'v%s%s.metadata.json,%s%s.metadata.json'—
-
iceberg_metadata(path TEXT,#необязательные_параметры) returns SETOFiceberg_metadata_record Возвращает метаданные таблицы iceberg. Метаданные возвращаются в виде набора
icerberg_metadata_record, который определяется следующим образом:CREATE TYPE duckdb.iceberg_metadata_record AS ( manifest_path TEXT, manifest_sequence_number NUMERIC, manifest_content TEXT, status TEXT, content TEXT, file_path TEXT );Чтобы использовать
iceberg_metadata, включите расширение iceberg:SELECT duckdb.install_extension('iceberg');Обязательные параметры:
Имя
Тип
Описание
pathtextПуть к хранилищу с таблицей iceberg, которую необходимо прочитать.
Необязательные параметры повторяют параметры функции DuckDB
iceberg_metadata. Чтобы указать дополнительные параметры, используйтепараметр := 'значение'.Необязательные параметры:
Имя
Тип
Значение по умолчанию
Описание
allowed_moved_pathsbooleanfalse
Позволяет убедиться, что было выполнено разрешение пути. Это позволяет сканировать таблицы iceberg, расположение которых было изменено.
metadata_compression_codectext'none'—
skip_schema_inferencebooleanfalse
—
versiontext'version-hint.text'—
version_name_formattext'v%s%s.metadata.json,%s%s.metadata.json'-
iceberg_snapshots (path TEXT,#необязательные_параметры) returns SETOFiceberg_snapshot_record Считывает информацию о снимке из таблицы iceberg.
Возвращает метаданные снимка таблицы iceberg. Это может быть полезно для запросов с функцией «путешествия во времени» (time travel) и для изучения истории таблицы.
Пример 21.3.
SELECT * FROM iceberg_snapshots('data/iceberg/table');Чтобы использовать
iceberg_snapshots, включите расширение iceberg:SELECT duckdb.install_extension('iceberg');Обязательные параметры:
Имя
Тип
Описание
pathtextПуть к хранилищу с таблицей iceberg, которую необходимо прочитать.
Необязательные параметры повторяют параметры функции DuckDB
iceberg_snapshots. Чтобы указать дополнительные параметры, используйтепараметр := 'значение'.Необязательные параметры:
Имя
Тип
Значение по умолчанию
metadata_compression_codectext'none'skip_schema_inferencebooleanfalse
versiontext'version-hint.text'version_name_formattext'v%s%s.metadata.json,%s%s.metadata.json'-
delta_scan(path TEXT) returns SETOF#duckdb.row Считывает набор данных Delta из хранилища.
Возвращает строки DuckDB. Их можно расширить с помощью
*или выбрать конкретные столбцы с помощью синтаксисаr['имя_столбца']. Чтобы выбрать конкретные столбцы, присвойте вызову функции простой псевдоним, напримерr:Пример 21.4.
SELECT * FROM delta_scan('/path/to/delta/dataset'); SELECT r['id'], r['name'] FROM delta_scan('/path/to/delta/dataset') r WHERE r['age'] > 21; SELECT COUNT(*) FROM delta_scan('/path/to/delta/dataset');Чтобы использовать
delta_scan, включите расширение delta:SELECT duckdb.install_extension('delta');Обязательные параметры:
Имя
Тип
Описание
pathtextПуть к хранилищу с набором данных Delta, который необходимо прочитать.