5.3. Чтение метаданных #

5.3.1. Получение снимка #

Выполните следующий запрос:

SELECT *
FROM pga_snapshot
WHERE snapshot_id = идентификатор_снимка;

Где snapshot_ID — это идентификатор снимка из таблицы метаданных pga_snapshot.

Чтобы получить последний снимок, выполните следующий запрос:

SELECT *
FROM pga_snapshot
WHERE snapshot_id =
  (SELECT max(snapshot_id) FROM pga_snapshot);

5.3.2. Вывод аналитических схем #

Выполните следующий запрос:

SELECT schema_id, schema_name
FROM pga_schema
WHERE
    идентификатор_снимка >= begin_snapshot AND
    (идентификатор_снимка < end_snapshot OR end_snapshot IS NULL);

Где snapshot_ID — это идентификатор снимка из таблицы метаданных pga_snapshot.

5.3.3. Вывод аналитических таблиц #

Выполните следующий запрос:

SELECT table_id, table_name
FROM pga_table
WHERE
    schema_id = идентификатор_схемы AND
    идентификатор_снимка >= begin_snapshot AND
    (идентификатор_снимка < end_snapshot OR end_snapshot IS NULL);

Где:

5.3.4. Вывод столбцов аналитической таблицы #

Выполните следующий запрос:

SELECT column_id, column_name, column_type
FROM pga_column
WHERE
    table_id = идентификатор_таблицы AND
    идентификатор_снимка >= begin_snapshot AND
    (идентификатор_снимка < end_snapshot OR end_snapshot IS NULL)
ORDER BY column_order;

Где:

5.3.5. Вывод отфильтрованных Parquet-файлов #

Вывести Parquet-файлы можно после вывода столбцов аналитической таблицы. Полученные Parquet-файлы можно отфильтровать с помощью статистики из таблицы метаданных pga_file_column_statistics.

Чтобы вывести список Parquet-файлов и отфильтровать их по значениям столбцов, выполните следующий запрос:

SELECT data_file_id
FROM ducklake_file_column_stats
WHERE
    table_id = идентификатор_таблицы AND
    column_id = идентификатор_столбца AND
    (SCALAR >= min_value OR min_value IS NULL) AND
    (SCALAR <= max_value OR max_value IS NULL);

Где:

  • идентификатор_таблицы: идентификатор таблицы из таблицы метаданных pga_table, к которой относятся Parquet-файлы.

  • идентификатор_столбца: идентификатор столбца из таблицы с метаданными pga_column, значения которого используются для фильтрации Parquet-файлов.

    В этом примере будут выведены только те Parquet-файлы, у которых в столбце column_ID нет скалярных значений.

Чтобы отфильтровать значения столбцов, можно использовать разные условия, такие как > (больше чем), изменяя запрос соответствующим образом.

Минимальные и максимальные значения для каждого столбца хранятся в виде массивов строк и должны быть преобразованы к числовому типу.