No Hologres, um Foreign Server define os detalhes de conexão para acessar dados no Object Storage Service (OSS) por meio de um wrapper de dados externos. Após configurar o servidor, mapeie tabelas do OSS gerenciadas pelo Data Lake Formation (DLF) para tabelas externas do Hologres e consulte-as com a sintaxe padrão do PostgreSQL, sem copiar os dados para o Hologres.
Este tópico explica como usar a ferramenta visual HoloWeb para criar um Foreign Server e tabelas externas, além de gerenciá-los após a criação.
Como funciona
Configurar o acesso a dados entre sistemas exige duas etapas principais:
Criar um Foreign Server: defina o catálogo DLF e os endpoints do OSS que o Hologres usa para localizar seus dados externos.
Criar tabelas externas: mapeie uma ou mais tabelas DLF para o Hologres. Escolha o escopo adequado ao seu caso de uso: um banco de dados inteiro, um conjunto selecionado de tabelas ou uma única tabela.
Após a criação, as tabelas externas aparecem no painel de navegação à esquerda do HoloWeb. Você pode consultá-las, editá-las, renomeá-las, excluí-las ou visualizá-las.
Pré-requisitos
Antes de começar, verifique se você tem:
Um bucket do OSS com dados importados. Consulte Início rápido.
Um catálogo DLF que já contenha um banco de dados e tabelas. Consulte Catálogo de dados e Bancos de dados, tabelas e funções.
Permissão USAGE no wrapper de dados externos que você pretende usar. Consulte Conceder permissões.
Limitações
O Hologres não oferece suporte a consultas entre regiões em dados de tabelas externas.
Criar um Foreign Server
Um Foreign Server armazena os detalhes de conexão (endpoint DLF, catálogo DLF e endpoint OSS) que o Hologres utiliza para acessar sua source de dados externa. Também é possível definir detalhes de conexão por usuário usando mapeamento de usuário. Para a abordagem baseada em SQL, consulte Criar um Foreign Server.
Faça login no Console de Gerenciamento do Hologres.
Na barra de menu superior, selecione a região de destino.
No painel de navegação à esquerda, clique em Instances. Na coluna Actions da instância desejada, clique em Data Lake Acceleration para ativar a aceleração de data lake.
Clique em Go to HoloWeb.
Após conectar-se ao banco de dados de destino, clique em Metadata Management na barra de menu superior.
-
Clique em OSS Data Lake Acceleration > Create Foreign Server.
ImportanteO nome do Foreign Server deve ser exclusivo no banco de dados.
Parâmetro
Descrição
Server Name
Nome exclusivo do Foreign Server no banco de dados.
DLF EndPoint
Padrão: endpoint DLF da região atual. Consulte Regiões e endpoints suportados.
DLF Catalog
Selecione um catálogo DLF existente. Se a lista estiver vazia, clique em Create in DLF Console para criar um.
OSS EndPoint
Padrão: endpoint nativo do OSS para a região atual. Para usar um endpoint OSS-HDFS, selecione-o na lista suspensa. Se não houver nenhum bucket OSS, clique em Create in OSS Console. Para valores de endpoint, consulte Regiões e endpoints (OSS) ou a página Overview de qualquer bucket com OSS-HDFS habilitado (OSS-HDFS).

Clique em Submit.
Criar uma tabela externa
É possível criar tabelas externas em três níveis de escopo. Escolha o modo adequado ao seu caso de uso:
|
Modo |
O que é criado |
|
Entire Database Acceleration |
Todas as tabelas no banco de dados DLF especificado |
|
Partial Acceleration |
Subconjunto selecionado de tabelas, encontrado por busca aproximada de nome |
|
Single Table Acceleration |
Uma tabela específica, com controle total sobre o nome da tabela de destino |
Etapas:
Faça login no Console de Gerenciamento do Hologres.
Na barra de menu superior, selecione a região de destino.
Clique em Go to HoloWeb.
Clique em Metadata Management na barra de menu superior.
-
Clique em OSS Data Lake Acceleration > Create Foreign Table.

-
Selecione um modo de aceleração e preencha os parâmetros.
Entire Database Acceleration
Parâmetro
Descrição
Server Name
Foreign Server que define os detalhes de conexão para a source de dados externa.
DB Name
Nome do banco de dados sob o catálogo DLF especificado no Foreign Server.
Holo Schema
Schema de destino no Hologres. Padrão: public.
Table Name Conflict
Ação quando já existe uma tabela com o mesmo nome: Ignore and continue creating other tables ignora o conflito e continua; Update and modify the existing table atualiza a tabela existente; Error and stop duplicate creation interrompe a criação e retorna um erro.
Unsupported Data Type
Ação quando uma tabela contém tipos de coluna não suportados: Ignore and Skip Table of Unsupported Fields ignora essas tabelas e continua; Error and fail import interrompe a importação e retorna um erro.
Partial Acceleration
O modo Partial Acceleration aceita os mesmos parâmetros do Entire Database Acceleration, além dos seguintes:
Parâmetro
Descrição
Search
Insira o nome completo ou parcial da tabela para pesquisar. Selecione as tabelas a incluir nos resultados.
Single Table Acceleration
Parâmetro
Descrição
Server Name
Foreign Server que define os detalhes de conexão para a source de dados externa.
DB Name
Nome do banco de dados sob o catálogo DLF especificado no Foreign Server.
Table Name (DLF)
Nome da tabela de origem no banco de dados DLF.
Schema
Schema de destino no Hologres. Padrão: public.
Table Name (Hologres)
Nome da nova tabela externa no Hologres. Preenchido automaticamente com base no nome da tabela DLF. Renomeie se necessário.
Target Table Description
Descrição opcional da tabela externa.
Ao criar tabelas externas, todos os campos da tabela de origem externa são incluídos por padrão. Para incluir apenas campos específicos, use o modo Single Table Acceleration ou crie a tabela com uma instrução SQL. Consulte CREATE FOREIGN TABLE .
Clique em Submit. Após atualizar a página, a nova tabela externa aparece sob o schema correspondente no painel de navegação à esquerda.
(Opcional) Clique duas vezes na tabela externa e, em seguida, clique em Query Table para abrir uma janela de consulta SQL e consultar os dados com a sintaxe padrão do PostgreSQL.
Gerenciar Foreign Servers com SQL
Após a criação, use SQL para visualizar, modificar ou excluir um Foreign Server.
Visualizar todos os Foreign Servers:
SELECT * FROM pg_foreign_server;
Modificar o catálogo DLF de um Foreign Server:
ALTER SERVER <foreignserver_name> OPTIONS (ADD|SET|DROP dlf_catalog ['<catalog_name>']);
|
Parâmetro |
Descrição |
|
|
Nome do Foreign Server a modificar. |
|
|
Adiciona um catálogo DLF ao Foreign Server. |
|
|
Modifica o catálogo DLF do Foreign Server. |
|
|
Remove o catálogo DLF do Foreign Server. Exemplo: |
Excluir um Foreign Server:
DROP SERVER <foreignserver_name> CASCADE;
O parâmetro CASCADE também exclui todos os objetos dependentes, como tabelas externas que referenciam esse servidor.
Gerenciar tabelas externas
Editar uma tabela externa
No painel de navegação à esquerda do HoloWeb, expanda Logged-in Instances e navegue até a instância de destino > banco de dados de destino > schema de destino > Foreign Tables.
Clique duas vezes na tabela externa de destino.
Na página de detalhes, clique em Edit Table.
Modifique os Fields ou Partitions mapeados da tabela de origem externa.
Clique em Submit.
Renomear uma tabela externa
Na lista Logged-in Instances, localize a tabela externa de destino (consulte as etapas 1–2 em Editar uma tabela externa).
Clique com o botão direito na tabela externa e selecione Rename.
Na caixa de diálogo Modify Table Name, insira o novo nome.
Clique em OK.
Excluir uma tabela externa
Na lista Logged-in Instances, localize a tabela externa de destino (consulte as etapas 1–2 em Editar uma tabela externa).
Clique com o botão direito na tabela externa e selecione Delete Table.
Na caixa de diálogo Delete Table, clique em OK.
Visualizar dados
Na lista Logged-in Instances, localize a tabela externa de destino (consulte as etapas 1–2 em Editar uma tabela externa).
Clique duas vezes na tabela externa e, em seguida, clique em Data Preview na página de detalhes.
Solução de problemas
Erro: Permissão negada para API DLF do RAM
Se você encontrar um erro semelhante ao seguinte ao acessar uma tabela externa no HoloWeb:
You are not authorized to perform the operation. Please use RAM to authorize the operation. Action: [dlf:xxx].
Conceda ao usuário ou função do Resource Access Management (RAM) as permissões necessárias da OpenAPI relacionadas ao AliyunDLF.
Próximos passos
Criar um Foreign Server com SQL: Criar um Foreign Server
Criar uma tabela externa com SQL: Criar uma tabela externa em uma instância Hologres
Referência de DDL de tabela externa: ALTER FOREIGN TABLE e DROP FOREIGN TABLE