file_fdw. Оболочка сторонних данных для доступа к файлам на сервере
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext
.
Модуль реализует оболочку сторонних данных (fdw
– foreign-data wrapper), с помощью которой можно:
- обращаться к файлам данных в файловой системе сервера;
- выполнять программы на сервере;
- читать их вывод.
Файлы и вывод программ должны быть в формате, понятном для команды COPY FROM
.
Файлы доступны только для чтения.
Для сторонней таблицы можно задать параметры. Некоторые параметры имеют аналогичные указания в команде COPY
.
Параметр | Описание | Аналог в COPY |
---|---|---|
filename | Определяет имя файла, который нужно прочитать. При указании относительного пути он рассматривается от каталога данных. Необходимо определить либо параметр filename , либо program , но не оба сразу. | – |
program | Определяет команду, которая будет выполнена. Поток стандартного вывода этой команды будет прочитан так же, как и с COPY FROM PROGRAM . Необходимо определить либо параметр program , либо filename , но не оба сразу. | – |
format | Определяет формат файла | FORMAT |
header | Указывает на то, что данные содержат строку заголовка с именами столбцов | HEADER |
delimiter | Задает символ, разделяющий столбцы в данных | DELIMITER |
quote | Задает символ, используемый для заключения данных в кавычки | QUOTE |
escape | Задает символ, используемый для экранирования данных | ESCAPE |
null | Определяет строку, задающую значение NULL в данных | NULL |
encoding | Задает кодировку данных | ENCODING |
Параметры для столбцов создаваемой сторонней таблицы:
Параметр | Тип | Значения | Аналог в COPY |
---|---|---|---|
force_not_null | Логическое | Если true , то значение столбца не должно сверяться со значением NULL , заданным в параметре null на уровне таблицы | FORCE_NOT_NULL |
force_null | Логическое | Если true , значения столбцов нужно сверять со значением NULL , заданным в параметре NULL , даже если они заключены в кавычки. Без этого параметра только значения без кавычек, соответствующие значению null , будут возвращаться как NULL | FORCE_NULL |
Доработка
Доработка не проводилась.
Ограничения
Модуль не поддерживает указание FORCE_QUOTE
команды COPY
.
Установка
При наличии прав администратора СУБД включение модуля выполняется запросом:
CREATE EXTENSION file_fdw SCHEMA ext;
Настройка
Настройка не требуется.
Использование модуля
Пример использования для доступа к журналу сообщений PostgreSQL как к таблице.
Создайте сторонний сервер:
CREATE SERVER pgsyslog FOREIGN DATA WRAPPER file_fdw;
Создайте стороннюю таблицу pgsyslog
с перечислением столбцов и указанием на расположение файла:
CREATE FOREIGN TABLE pgsyslog (
log_time timestamp(3) with time zone,
user_name text,
database_name text,
process_id integer,
connection_from text
) SERVER pgsyslog
OPTIONS (filename 'log/pgsyslog.csv', format 'csv');
Содержимое файла $PGDATA/log/pgsyslog.csv
:
2023-02-04 10:23:54+03,User1,full_db,345445,out_db