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);Где:
идентификатор_схемы: идентификатор аналитической схемы из таблицы метаданныхpga_schema, в которой создаются аналитические таблицы.идентификатор_снимка: идентификатор снимка из таблицы метаданныхpga_snapshot.
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;Где:
идентификатор_таблицы: идентификатор аналитической таблицы из таблицы метаданныхpga_table, в которой создаются столбцы.идентификатор_снимка: идентификатор снимка из таблицы метаданныхpga_snapshot.
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нет скалярных значений.
Чтобы отфильтровать значения столбцов, можно использовать разные условия, такие как > (больше чем), изменяя запрос соответствующим образом.
Минимальные и максимальные значения для каждого столбца хранятся в виде массивов строк и должны быть преобразованы к числовому типу.