A partir da versão V1.3.26, o Hologres lê dados do OSS-HDFS e grava resultados de volta nesse serviço. Quando seus pipelines de extração, transformação e carga (ETL) geram dados no OSS-HDFS, o Hologres permite consultar esses dados no local e gravar os resultados de volta, sem mover informações para fora do data lake. O Hologres utiliza o Data Lake Formation (DLF) para gerenciamento de metadados e o JindoSDK para acesso direto aos dados e gravação de retorno.
A gravação de retorno é suportada apenas para os formatos ORC, Parquet, CSV e SequenceFile.
Como funciona
A integração utiliza o foreign data wrapper dlf_fdw. O Hologres consulta o DLF para obter metadados das tabelas e usa o JindoSDK para acessar o armazenamento subjacente do OSS-HDFS.
O OSS-HDFS (também conhecido como JindoFS) é um serviço de armazenamento de data lake nativo da nuvem. Em comparação com o OSS nativo, o OSS-HDFS se integra diretamente ao Hive, Spark e outros mecanismos de computação do ecossistema Hadoop.
Modos de acesso
Antes de configurar um servidor externo, determine qual tipo de endpoint se aplica ao seu cenário. Para acessar vários ambientes OSS-HDFS simultaneamente, crie um servidor externo separado para cada ambiente.
|
Cenário |
Tipo de endpoint |
Observações |
|
OSS-HDFS (mesma região) |
Endpoint privado |
O OSS-HDFS suporta apenas acesso por rede privada. Não há suporte para acesso entre regiões. |
|
OSS-HDFS + DLF (entre regiões) |
Endpoint público para DLF |
Endpoints públicos geram taxas de rede. Consulte Visão geral do faturamento. |
|
OSS nativo (mesma região) |
Endpoint privado |
Oferece melhor desempenho. Crie um servidor externo separado com o endpoint privado do OSS. |
|
OSS nativo (entre regiões) |
Endpoint público |
Configure um servidor externo distinto utilizando o endpoint público do OSS. |
Pré-requisitos
Antes de começar, verifique se você:
Ativou o DLF. Consulte Início rápido e Regiões e endpoints para verificar as regiões suportadas
Ativou o OSS-HDFS e carregou seus dados. Consulte Ativar o serviço OSS-HDFS
Habilitou o recurso de aceleração de data lake na sua instância do Hologres. Consulte Configuração do ambiente
Etapa 1: Localizar o endpoint do bucket do OSS-HDFS
Abra o console do OSS, acesse a página Overview do seu bucket e copie o nome de domínio do serviço OSS-HDFS. Você usará esse valor como oss_endpoint na próxima etapa.

Etapa 2: Criar um servidor externo
Ative a extensão dlf_fdw e crie um servidor externo que conecte o Hologres ao DLF e ao OSS-HDFS.
CREATE EXTENSION IF NOT EXISTS dlf_fdw;
CREATE SERVER IF NOT EXISTS <servername> FOREIGN DATA WRAPPER dlf_fdw OPTIONS (
dlf_region 'cn-<region>',
dlf_endpoint 'dlf-share.cn-<region>.aliyuncs.com',
oss_endpoint '<bucket_name>.cn-<region>.oss-dls.aliyuncs.com' -- OSS-HDFS bucket domain name from Step 1
);
|
Parâmetro |
Descrição |
Exemplo |
|
|
Nome atribuído a este servidor externo |
|
|
|
Região onde o DLF está implantado. Consulte Regiões e endpoints |
|
|
|
Endpoint do serviço DLF. Utilize o endpoint privado para obter melhor desempenho. Para acesso entre regiões, use um endpoint público (sujeito a taxas de rede) |
|
|
|
Endpoint do OSS-HDFS obtido na Etapa 1. Para OSS nativo, utilize o endpoint privado ou público do OSS |
|
Etapa 3: Criar tabelas externas
Mapeie as tabelas de metadados do DLF para tabelas externas do Hologres usando um dos métodos abaixo.
Criar uma única tabela
Utilize CREATE FOREIGN TABLE para mapear uma tabela específica ou IMPORT FOREIGN SCHEMA LIMIT TO para uma importação direcionada.
-- Option A: Create the foreign table directly
CREATE FOREIGN TABLE dlf_oss_test
(
id text,
pt text
)
SERVER dlf_server
OPTIONS
(
schema_name 'dlfpro',
table_name 'dlf_oss_test'
);
-- Option B: Import a single table from a DLF metadatabase
IMPORT FOREIGN SCHEMA dlfpro LIMIT TO
(
dlf_oss_test
)
FROM SERVER dlf_server INTO public OPTIONS (if_table_exist 'update');
Importar tabelas em massa
Mapeie todas as tabelas de um metadatabase do DLF, ou um subconjunto selecionado, para um schema do Hologres em uma única operação.
-- Import an entire DLF metadatabase
IMPORT FOREIGN SCHEMA dlfpro
FROM SERVER dlf_server INTO public OPTIONS (if_table_exist 'update');
-- Import selected tables
IMPORT FOREIGN SCHEMA dlfpro
(
table1,
table2,
tablen
)
FROM SERVER dlf_server INTO public OPTIONS (if_table_exist 'update');
Após a importação, as tabelas externas aparecem no schema correspondente no Hologres e na pasta de schema de tabela no HoloWeb.
Etapa 4: Consultar dados
Consulte tabelas externas da mesma forma que você consulta tabelas nativas do Hologres.
-- Query a non-partitioned table
SELECT * FROM dlf_oss_test;
-- Query a partitioned table
SELECT * FROM <partition_table> WHERE dt = '2013';
Para gravar dados de volta, execute INSERT INTO em uma tabela externa nos formatos ORC, Parquet, CSV ou SequenceFile.
Próximos passos
Para o procedimento completo, incluindo a configuração do ambiente, consulte Acelerar o acesso a data lakes do OSS usando o DLF
Para detalhes sobre o serviço OSS-HDFS, consulte O que é o serviço OSS-HDFS?