21.1. Функции для чтения OLAP-данных из хранилища #

read_parquet(path TEXT or TEXT[], необязательные_параметры) returns SETOF duckdb.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');
  

Обязательные параметры:

Имя

Тип

Описание

path

text или text[]

Путь к хранилищу с Parquet-файлами, которые необходимо прочитать. Может содержать шаблон поиска (glob) или массив файлов.

Необязательные параметры повторяют параметры функции DuckDB read_parquet. Чтобы указать дополнительные параметры, используйте параметр := 'значение'.

read_csv(path TEXT or TEXT[], необязательные_параметры) returns SETOF duckdb.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');
  

Обязательные параметры:

Имя

Тип

Описание

path

text или text[]

Путь к хранилищу с CSV-файлами, которые необходимо прочитать. Может содержать шаблон поиска (glob) или массив файлов.

Необязательные параметры повторяют параметры функции DuckDB read_csv. Чтобы указать дополнительные параметры, используйте параметр := 'значение'.

Примечание

  • columns не поддерживается в настоящее время.

  • nullstr должен быть массивом (TEXT[])

read_json(path TEXT or TEXT[], необязательные_параметры) returns SETOF duckdb.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');
  

Обязательные параметры:

Имя

Тип

Описание

path

text или text[]

Путь к хранилищу с JSON-файлами, которые необходимо прочитать. Может содержать шаблон поиска (glob) или массив файлов.

Необязательные параметры повторяют параметры функции DuckDB read_json. Чтобы указать дополнительные параметры, используйте параметр := 'значение'.

Примечание

В настоящее время columns не поддерживается.

iceberg_scan(path TEXT, необязательные_параметры) returns SETOF duckdb.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');
  

Обязательные параметры:

Имя

Тип

Описание

path

text

Путь к хранилищу с таблицей iceberg, которую необходимо прочитать.

Необязательные параметры повторяют параметры функции DuckDB iceberg_scan. Чтобы указать дополнительные параметры, используйте параметр := 'значение'.

Необязательные параметры:

Имя

Тип

Значение по умолчанию

Описание

allowed_moved_paths

boolean

false

Позволяет убедиться, что было выполнено разрешение пути. Это позволяет сканировать таблицы iceberg, расположение которых было изменено.

mode

text

''

metadata_compression_codec

text

'none'

skip_schema_inference

boolean

false

version

text

'version-hint.text'

version_name_format

text

'v%s%s.metadata.json,%s%s.metadata.json'

iceberg_metadata(path TEXT, необязательные_параметры) returns SETOF iceberg_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');
  

Обязательные параметры:

Имя

Тип

Описание

path

text

Путь к хранилищу с таблицей iceberg, которую необходимо прочитать.

Необязательные параметры повторяют параметры функции DuckDB iceberg_metadata. Чтобы указать дополнительные параметры, используйте параметр := 'значение'.

Необязательные параметры:

Имя

Тип

Значение по умолчанию

Описание

allowed_moved_paths

boolean

false

Позволяет убедиться, что было выполнено разрешение пути. Это позволяет сканировать таблицы iceberg, расположение которых было изменено.

metadata_compression_codec

text

'none'

skip_schema_inference

boolean

false

version

text

'version-hint.text'

version_name_format

text

'v%s%s.metadata.json,%s%s.metadata.json'

iceberg_snapshots (path TEXT, необязательные_параметры) returns SETOF iceberg_snapshot_record #

Считывает информацию о снимке из таблицы iceberg.

Возвращает метаданные снимка таблицы iceberg. Это может быть полезно для запросов с функцией «путешествия во времени» (time travel) и для изучения истории таблицы.

Пример 21.3.

  SELECT * FROM iceberg_snapshots('data/iceberg/table');
  

Чтобы использовать iceberg_snapshots, включите расширение iceberg:

  SELECT duckdb.install_extension('iceberg');
  

Обязательные параметры:

Имя

Тип

Описание

path

text

Путь к хранилищу с таблицей iceberg, которую необходимо прочитать.

Необязательные параметры повторяют параметры функции DuckDB iceberg_snapshots. Чтобы указать дополнительные параметры, используйте параметр := 'значение'.

Необязательные параметры:

Имя

Тип

Значение по умолчанию

metadata_compression_codec

text

'none'

skip_schema_inference

boolean

false

version

text

'version-hint.text'

version_name_format

text

'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');
  

Обязательные параметры:

Имя

Тип

Описание

path

text

Путь к хранилищу с набором данных Delta, который необходимо прочитать.