Todos os produtos
Search
Central de documentação

Hologres:Quickly build a real-time data warehouse analysis dashboard

Última atualização: Jun 28, 2026

Este tópico descreve como conectar o Hologres ao Realtime Compute for Apache Flink para criar um painel de análise de data warehouse em tempo real.

Pré-requisitos

Contexto

O Hologres é um produto de análise interativa em tempo real da Alibaba Cloud. Ele se conecta diretamente ao Realtime Compute for Apache Flink por meio da API HoloHub integrada . Essa conexão permite gravações e consultas de dados em tempo real com alta concorrência, fornecendo respostas em segundos.

O Hologres é compatível com PostgreSQL, o que permite conectá-lo diretamente a ferramentas de business intelligence (BI) para analisar e visualizar seus dados.

Este tópico usa como exemplo a criação de um painel operacional em tempo real para uma loja de e-commerce. O painel exibe métricas como tráfego total, visitas por loja, vendas regionais e produtos mais vendidos.

A figura a seguir mostra o pipeline de ponta a ponta para criar um painel operacional em tempo real com o Hologres.a

  • Os dados de source são coletados e gravados no Realtime Compute for Apache Flink em tempo real para limpeza e agregação.

  • Em seguida, os dados processados são gravados no Hologres em tempo real para permitir consultas interativas.

  • O Hologres se conecta a um painel do DataV para visualizar as métricas operacionais em tempo real.

Procedimento

  1. Obtenha os dados de source.

    Obtenha dados de source do DataHub ou de outros logs de serviço.

    Para fins de demonstração, este tutorial gera dados diretamente do Realtime Compute for Apache Flink. Para obter mais informações, consulte a Etapa 3.

  2. Crie uma tabela de destino no Hologres.

    Use o HoloWeb para criar uma tabela para os dados em tempo real. O esquema da tabela deve corresponder aos campos e tipos de dados da tabela de source. Para obter mais informações, consulte Conectar ao HoloWeb e executar uma consulta. As instruções SQL a seguir servem de exemplo.

    BEGIN;
    CREATE TABLE public.order_details (
    "user_id" int8,
    "user_name" text,
    "item_id" int8,
    "item_name" text,
    "price" numeric(38,2),
    "province" text,
    "city" text,
    "ip" text,
    "longitude" text,
    "latitude" text,
    "sale_timestamp" timestamptz NOT NULL
    );
    CALL SET_TABLE_PROPERTY('public.order_details','orientation', 'column');
    CALL SET_TABLE_PROPERTY('public.order_details','clustering_key', 'sale_timestamp:asc');
    CALL SET_TABLE_PROPERTY('public.order_details','segment_key', 'sale_timestamp');
    CALL SET_TABLE_PROPERTY('public.order_details','bitmap_columns', 'user_name,item_name,province,city,ip,longitude,latitude');
    CALL SET_TABLE_PROPERTY('public.order_details','dictionary_encoding_columns','user_name:auto,item_name:auto,province:auto,city:auto,ip:auto,longitude:auto,latitude:auto');
    CALL SET_TABLE_PROPERTY('public.order_details','time_to_live_in_seconds', '3153600000');
    CALL SET_TABLE_PROPERTY('public.order_details','distribution_key', 'user_id');
    CALL SET_TABLE_PROPERTY('public.order_details','storage_format', 'orc');
    COMMIT;
  3. No console do Realtime Compute for Apache Flink, faça upload do recurso JAR do conector personalizado ordergen. Para obter mais informações, consulte Fazer upload e usar um conector personalizado.

  4. Limpe os dados usando o Realtime Compute for Apache Flink.

    No console do Realtime Compute for Apache Flink, crie um job para limpar e agregar os dados de source. Em seguida, o job usa a API HoloHub para gravar os dados no Hologres em tempo real. Para obter mais informações, consulte Visão geral do desenvolvimento de jobs. As instruções SQL a seguir servem de exemplo.

    CREATE TEMPORARY TABLE source_table (
    user_id BIGINT,
    user_name VARCHAR,
    item_id BIGINT,
    item_name VARCHAR,
    price numeric (38, 2),
    province VARCHAR,
    city VARCHAR,
    longitude VARCHAR,
    latitude VARCHAR,
    ip VARCHAR,
    sale_timestamp TIMESTAMP
     )
    WITH ('connector' = 'ordergen');
    
    CREATE TEMPORARY TABLE hologres_sink (
    user_id BIGINT,
    user_name VARCHAR,
    item_id BIGINT,
    item_name VARCHAR,
    price numeric (38, 2),
    province VARCHAR,
    city VARCHAR,
    longitude VARCHAR,
    latitude VARCHAR,
    ip VARCHAR,
    sale_timestamp TIMESTAMP
     )
    WITH (
    'connector' = 'hologres',
    'dbname' = '<holo_db>',
    'tablename' = '<receive_table>',
    'username' = '<uid>',
    'password' = '<pid>',
    'endpoint' = '<host>'
     );
    
    INSERT INTO hologres_sink
    SELECT user_id,
     user_name,
     item_id,
     item_name,
     price,
     province,
     city,
     longitude,
     latitude,
     ip,
     sale_timestamp
    FROM
    source_table;

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    holo_db

    Nome do banco de dados do Hologres.

    receive_table

    Nome da tabela de destino no Hologres. Neste tutorial, trata-se de public.order_details.

    uid

    AccessKey ID da sua conta Alibaba Cloud.

    pid

    AccessKey Secret da sua conta Alibaba Cloud.

    host

    Nome de domínio do endpoint da VPC da instância do Hologres. Encontre esse nome de domínio na seção Network Information da página Detalhes da Instância no console do Hologres.

  5. Na página Deployments do console do Realtime Compute for Apache Flink, inicie o job e aguarde até que seu status mude para Running. Para obter mais informações, consulte Iniciar um job.

  6. Consulte os dados em tempo real no Hologres.

    Execute consultas no Hologres para analisar os dados em tempo real sob diferentes dimensões. As instruções SQL a seguir servem de exemplo.

    SELECT SUM(price) AS "GMV" FROM order_details ;
    
    SELECT COUNT(DISTINCT user_id) AS "UV" FROM order_details ;
    
    SELECT city AS "City", COUNT(DISTINCT user_id) AS "CustomerCount" FROM order_details GROUP BY "City" ORDER BY "CustomerCount" DESC limit 100;
    
    SELECT item_name AS "Product", SUM(price) AS "SalesAmount" FROM order_details GROUP BY "Product" ORDER BY "SalesAmount" DESC limit 100;
    
    SELECT to_char(sale_timestamp, 'MM-DD') AS "Date", SUM(price) AS "GMV" FROM order_details GROUP BY "Date" ORDER BY "GMV" DESC limit 100;                
  7. Exiba o painel do DataV em tempo real.

    Crie um painel em tempo real conectando os resultados das consultas do Hologres diretamente ao DataV. Siga estas etapas:

    1. Adicione uma fonte de dados.

      1. No console do DataV, acesse Data Preparation > Data Source no painel de navegação à esquerda. Na página Data Source, clique em Add Source.

      2. No painel Add Data Source, configure os parâmetros da fonte de dados do Hologres .

      3. Clique em OK.

    2. Crie o painel em tempo real.

      Selecione os componentes necessários para o seu painel e configure suas fontes de dados. Para obter mais informações, consulte Visão geral.

      Este tutorial utiliza um gráfico de colunas básico, carrossel, mapa plano básico e quadro de ticker. As etapas a seguir usam o quadro de ticker como exemplo.

      1. Configure a fonte de dados.

      2. Configure a borda, a fonte e a cor do quadro de ticker. A pré-visualização do componente exibe em tempo real as decorações de borda, o texto do título e os valores numéricos.

    3. Exiba o painel em tempo real.

      Após configurar os componentes do painel e as fontes de dados, adicione elementos decorativos para personalizar a aparência.

      • O lado esquerdo exibe as visitas aos produtos e os valores de vendas por cidade em tempo real.

      • O mapa central mostra a localização de cada pedido, o valor total de vendas e o total de visitas em tempo real.

      • O lado direito apresenta a participação nas vendas e o ranking de vendas dos produtos em tempo real.