Registra uma ou mais tabelas de um source de dados externo como tabelas externas do PostgreSQL e cria um servidor externo em uma única chamada.
Sintaxe
cstring ST_RegForeignTables(
cstring source,
cstring server_name DEFAULT '',
cstring driver DEFAULT '',
cstring config_option DEFAULT '',
cstring open_option DEFAULT '',
cstring[] tables DEFAULT NULL,
cstring prefix DEFAULT ''
);
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Caminho do source de dados. Para formatos de caminho compatíveis, consulte Object storage paths. |
|
|
Não |
|
Nome do servidor externo a criar. Se omitido, o servidor receberá o nome |
|
|
Não |
Driver padrão |
Driver para acessar o source de dados. Para listar os drivers disponíveis, chame ST_FDWDrivers. |
|
|
Não |
|
Variáveis de ambiente para configurar na conexão com o source de dados. |
|
|
Não |
|
Opções específicas do driver para abrir o source de dados. Por exemplo, passe |
|
|
Não |
|
Nomes das tabelas a registrar. Para listar os nomes de tabela disponíveis, chame ST_ForeignTables. |
|
|
Não |
|
Prefixo a adicionar ao nome de cada tabela externa. Use este parâmetro para evitar conflitos de nomes ao registrar tabelas de múltiplos sources de dados. |
Descrição
A função ST_RegForeignTables encapsula o fluxo de trabalho do foreign data wrapper (FDW) do PostgreSQL — criação de servidor externo e registro de tabelas externas — em uma única chamada. Ela lê o source de dados especificado, cria um servidor externo com o nome fornecido e registra as tabelas encontradas como tabelas externas no banco de dados atual.
Após o registro, consulte information_schema.foreign_tables para confirmar quais tabelas foram criadas e verifique seus respectivos nomes.
Exemplos
Todos os exemplos usam um caminho do Object Storage Service (OSS) como source de dados. Substitua <access_id>, <secret_key>, <Endpoint>, <bucket> e path_to/file pelos valores reais.
Registrar todas as tabelas com o nome de servidor padrão
Se não for necessário um nome de servidor personalizado, omita server_name. A função cria automaticamente um servidor externo chamado ganos_fdw_server.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file'
);
Create server 'ganos_fdw_server' successfully
Registrar todas as tabelas com um nome de servidor personalizado
Ao registrar múltiplos sources de dados, use nomes de servidor distintos para mantê-los separados.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'my_server'
);
Create server 'my_server' successfully
Especificar um driver e opção de abertura
Quando o source de dados exige um driver ou codificação específica, defina driver e open_option. Este exemplo registra um diretório ESRI Shapefile com codificação Latin-1.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'myserver',
'ESRI Shapefile',
'',
'SHAPE_ENCODING=LATIN1'
);
Create server 'myserver' successfully
Registrar um subconjunto de tabelas
Se um source de dados contiver várias tabelas, mas você precisar apenas de algumas, passe os nomes das tabelas desejadas como um array. Para descobrir previamente os nomes disponíveis, chame ST_ForeignTables.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'myserver',
'ESRI Shapefile',
'',
'SHAPE_ENCODING=LATIN1',
ARRAY['point', 'roads']::cstring[]
);
Create server 'myserver' successfully
Adicionar um prefixo aos nomes das tabelas externas
Para evitar que os nomes das tabelas externas entrem em conflito com tabelas existentes, use prefix para diferenciá-las por namespace.
SELECT ST_RegForeignTables(
'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
'myserver',
'ESRI Shapefile',
'',
'SHAPE_ENCODING=LATIN1',
ARRAY['point', 'roads']::cstring[],
'myprefix'
);
Create server 'myserver' successfully
Verificar o registro
Após chamar ST_RegForeignTables, confirme a criação das tabelas externas consultando information_schema.foreign_tables.
Próximos passos
Chame
ST_ForeignTablespara listar todas as tabelas disponíveis em um source de dados antes de registrá-lasUse
ST_FDWDriverspara obter a lista de drivers compatíveis com o formato do seu source de dados