Todos os produtos
Search
Central de documentação

MaxCompute:StarRocks Connector

Última atualização: Aug 21, 2026

O StarRocks Connector utiliza o mecanismo de External Catalog para acessar fontes de dados do MaxCompute de forma transparente, sem importar dados ou criar tabelas externas, e executar consultas SQL complexas. Isso aumenta a eficiência da análise de dados e reduz a complexidade e o custo de operações e manutenção (O&M). Este tópico descreve como acessar o MaxCompute usando o StarRocks Connector.

Informações básicas

O StarRocks é um banco de dados MPP (Massively Parallel Processing) de alta velocidade e última geração, compatível com diversas cargas de trabalho analíticas empresariais, como análise multidimensional baseada em OLAP (Online Analytical Processing), criação de relatórios personalizados, análise de dados em tempo real e consultas ad hoc. Para obter detalhes sobre o StarRocks, consulte Introdução ao StarRocks. O StarRocks oferece suporte ao recurso Catalog (catálogo de dados), que permite gerenciar dados internos e externos em um único sistema, facilitando o acesso e a consulta a dados armazenados em várias fontes externas. Para mais informações, consulte Visão geral do Catalog.

Pré-requisitos

  • Implante um cluster StarRocks versão 3.2.3 ou posterior e garanta que o cluster consiga acessar corretamente o service MaxCompute. Para mais informações sobre como implantar um cluster StarRocks, consulte Implantar um cluster StarRocks shared-nothing usando Docker Compose.

  • Adquira um grupo de recursos dedicado do Data Transmission Service (assinatura) ou ative recursos de armazenamento aberto (pagamento conforme o uso).

Limites

  • Suporta leitura de tabelas padrão, tabelas particionadas, tabelas clusterizadas, Delta Tables e visualizações materializadas. Não suporta leitura de tabelas externas ou visualizações lógicas.

  • Não suporta leitura de tipos de dados JSON.

  • Suporta apenas projetos do MaxCompute com Schema desativado. Para detalhes sobre Schema, consulte Schema operations.

Crie um MaxCompute Catalog

Faça login no StarRocks e crie um MaxCompute Catalog. Para mais informações sobre External Catalogs, consulte Criar External Catalog.

Sintaxe

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
    "type" = "odps",
    CatalogParams,
    ScanParams,
    CachingMetaParams
)

Descrição dos parâmetros

  • Parâmetros comuns

    Parâmetro

    Obrigatório

    Descrição

    catalog_name

    Sim

    Nome do MaxCompute Catalog. Siga estas regras de nomenclatura:

    • Deve conter apenas letras (a–z ou A–Z), dígitos (0–9) ou sublinhados (_) e começar com uma letra.

    • O comprimento máximo é de 1023 caracteres.

    • Os nomes de Catalog diferenciam maiúsculas de minúsculas.

    type

    Sim

    Tipo da fonte de dados. Defina este parâmetro como odps.

    comment

    Não

    Descrição do MaxCompute Catalog.

    CatalogParams

    Sim

    Parâmetros para o StarRocks acessar o MaxCompute.

    ScanParams

    Não

    Parâmetros para o StarRocks acessar o armazenamento de arquivos do MaxCompute.

    CachingMetaParams

    Não

    Parâmetros que definem a política de cache de metadados.

  • Parâmetros CatalogParams

    Parâmetro

    Obrigatório

    Descrição

    odps.endpoint

    Sim

    Endereço de conexão do service MaxCompute. Configure o endpoint com base na região e no método de conectividade de rede selecionados durante a criação do projeto MaxCompute. Para valores de endpoint por região e tipo de rede, consulte Endpoint.

    Importante

    Atualmente, apenas redes VPC da Alibaba Cloud são suportadas.

    odps.project

    Sim

    Nome do projeto MaxCompute. Faça login no MaxCompute console e acesse a página Workspace > Projects para obter o nome do projeto.

    Nota

    Se você criou um workspace no modo padrão, distinga os nomes de projeto do ambiente de produção e do ambiente de desenvolvimento (_dev) ao configurar este parâmetro.

    odps.access.id

    Sim

    AccessKey ID da sua conta Alibaba Cloud ou usuário do Resource Access Management (RAM). Acesse a página de gerenciamento de AccessKey para obter o AccessKey ID.

    odps.access.key

    Sim

    AccessKey secret correspondente ao AccessKey ID.

    odps.tunnel.quota

    Sim

  • Parâmetros ScanParams

    Parâmetro

    Obrigatório

    Descrição

    odps.split.policy

    Não

    Estratégia de sharding usada durante a varredura de dados. Valores válidos:

    • size (padrão): faz o sharding por tamanho de dados. Valor padrão: 256 MB.

    • row_offset: faz o sharding por contagem de linhas.

    Nota

    A estratégia de sharding afeta significativamente a concorrência de varredura de dados no mecanismo de computação. Se a estratégia padrão não atender às suas necessidades, escolha a estratégia row_offset e ajuste-a usando o parâmetro odps.split.row.count.

    odps.split.row.count

    Não

    Número máximo de linhas por shard. Valor padrão: 4194304. Intervalo de valores: maior que 0.

    Nota

    Configure este parâmetro apenas quando odps.split.policy estiver definido como row_offset.

  • Parâmetros CachingMetaParams

    Parâmetro

    Obrigatório

    Descrição

    odps.cache.table.enable

    Não

    Define se deve haver cache de metadados da tabela. Valores válidos:

    • true (padrão): ativa o cache de metadados da tabela. Isso melhora a velocidade de recuperação e atualização de metadados, sendo adequado para cenários com operações DDL frequentes, ambientes multiusuário grandes ou otimização de consultas complexas.

    • false: desativa o cache de metadados da tabela. Como os recursos de cache são limitados e a dependência excessiva pode consumir muita memória, desative o cache para consultas pouco frequentes ou tabelas cujos metadados mudam constantemente.

    odps.cache.table.expire

    Não

    Intervalo de tempo, em segundos (s), após o qual os metadados da tabela em cache são automaticamente removidos. Valor padrão: 86400 (24 horas). Intervalo de valores: maior ou igual a 0.

    odps.cache.table.size

    Não

    Número de entradas de metadados de tabela a serem armazenadas em cache. Valor padrão: 1000.

    odps.cache.partition.enable

    Não

    Define se deve haver cache de metadados para todas as partições da tabela de destino. Valores válidos:

    • true (padrão): ativa o cache de metadados para todas as partições da tabela de destino.

    • false: desativa o cache. Os metadados de todas as partições não são armazenados em cache.

    Nota

    Se a tabela não for particionada, o parâmetro odps.cache.partition.enable não terá efeito.

    odps.cache.partition.expire

    Não

    Intervalo de tempo, em segundos (s), após o qual os metadados de partição em cache são automaticamente removidos. Valor padrão: 86400 (24 horas). Intervalo de valores: maior ou igual a 0.

    odps.cache.partition.size

    Não

    Número de tabelas particionadas cujos metadados podem ser armazenados em cache. Valor padrão: 1000.

    odps.cache.table-name.enable

    Não

    Define se deve haver cache de todos os nomes de tabela no projeto MaxCompute. Valores válidos:

    • true: ativa o cache de todos os nomes de tabela no projeto MaxCompute.

    • false (padrão): desativa o cache de todos os nomes de tabela no projeto MaxCompute.

    odps.cache.table-name.expire

    Não

    Intervalo de tempo, em segundos (s), após o qual as informações de nomes de tabela em cache no projeto MaxCompute são automaticamente removidas. Valor padrão: 86400 (24 horas). Intervalo de valores: maior ou igual a 0.

Exemplo

O exemplo a seguir cria um MaxCompute Catalog chamado odps_catalog, utilizando o projeto MaxCompute mf_mc_bj como referência.

-- Create catalog
CREATE EXTERNAL CATALOG odps_catalog PROPERTIES(
    "type"="odps",
    "odps.access.id"="<yourAccessKeyId>",
    "odps.access.key"="<yourAccessKeySecret>",
    "odps.endpoint"="http://service.cn-beijing.maxcompute.aliyun.com/api",
    "odps.tunnel.quota"="pay-as-you-go",
    "odps.project"="mf_mc_bj"
);

Acessar o MaxCompute

  1. Alterne para o Catalog e o projeto MaxCompute de destino. Este exemplo usa odps_catalog e mf_mc_bj.

    • Sintaxe

      • Método 1

        -- Specify Catalog
        SET CATALOG <catalog_name>;
        -- Specify MaxCompute project
        USE <project_name>;
      • Método 2

        USE <catalog_name>.<project_name>;
    • Exemplo

      SET CATALOG odps_catalog;
      USE mf_mc_bj;
  2. Consulte os dados. Este exemplo utiliza a tabela src.

SELECT * FROM src LIMIT 10;

O resultado é o seguinte.

+------+-------+
| key  | value |
+------+-------+
| 1    | 1     |
| 3    | 3     |
| 2    | 2     |
| 4    | 100   |
| 5    | 200   |
| 6    | 300   |
| 3    | 400   |
+------+-------+

Outras operações

Visualize MaxCompute Catalog

  • Liste todos os Catalogs no cluster StarRocks atual.

    SHOW CATALOGS;

    O resultado é o seguinte.

    +-----------------+----------+------------------------------------------------------------------+
    | Catalog         | Type     | Comment                                                          |
    +-----------------+----------+------------------------------------------------------------------+
    | default_catalog | Internal | An internal catalog contains this cluster‘s self-managed tables. |
    | odps_catalog    | Odps     | NULL                                                             |
    +-----------------+----------+------------------------------------------------------------------+
  • Exiba a instrução CREATE de um Catalog específico.

    SHOW CREATE CATALOG odps_catalog;

    O resultado é o seguinte.

    +--------------+--------------------------------------------------------------------------+
    | Catalog      | Create Catalog                                                           |
    +--------------+--------------------------------------------------------------------------+
    | odps_catalog | CREATE EXTERNAL CATALOG `odps_catalog`
                     PROPERTIES ("odps.endpoint"  =  "http://service.cn-beijing.maxcompute.aliyun.com/api",
                     "odps.access.id"  =  "<yourAccessKeyId>",
                     "odps.access.key"  =  "<yourAccessKeySecret>",
                     "odps.project"  =  "odps_project",
                     "type"  =  "odps"
                    )|
    +-----------------------------------------------------------------------------------------+

Visualize schema de tabela do MaxCompute

  • Descreva o schema de uma tabela do MaxCompute.

    • Sintaxe

      DESC[RIBE] <catalog_name>.<database_name>.<table_name>;
    • Descrição dos parâmetros

      • catalog_name: obrigatório. Nome do Catalog.

      • database_name: obrigatório. Nome do projeto MaxCompute sob o Catalog de destino.

      • table_name: obrigatório. Nome da tabela sob o projeto MaxCompute de destino.

    • Exemplo

      DESC odps_catalog.mf_mc_bj.src;

      O resultado é o seguinte.

      +-------+------+------+-------+---------+-------+
      | Field | Type | Null | Key   | Default | Extra |
      +-------+------+------+-------+---------+-------+
      | id    | INT  | Yes  | false | NULL    |       |
      | a     | INT  | Yes  | false | NULL    |       |
      +-------+------+------+-------+---------+-------+
  • Exiba o schema da tabela do MaxCompute e sua instrução CREATE TABLE.

    • Sintaxe

      SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
    • Descrição dos parâmetros

      • catalog_name: obrigatório. Nome do Catalog.

      • database_name: obrigatório. Nome do projeto MaxCompute sob o Catalog de destino.

      • table_name: obrigatório. Nome da tabela sob o projeto MaxCompute de destino.

    • Exemplo

      SHOW CREATE TABLE odps_catalog.mf_mc_bj.src;

      O resultado é o seguinte.

      +-------+--------------------------------------------------------------------------------+
      | Table | Create Table                                                                   |
      +-------+--------------------------------------------------------------------------------+
      | src   | CREATE TABLE `src` (
        `id` int(11) DEFAULT NULL,
        `a` int(11) DEFAULT NULL
      ) |
      +-------+--------------------------------------------------------------------------------+
    • Exclua um MaxCompute Catalog

      Execute o comando a seguir para excluir um MaxCompute Catalog.

      DROP CATALOG odps_catalog;

      Coleta de estatísticas do Cost-Based Optimizer (CBO)

      A versão atual do StarRocks não oferece suporte à coleta automática de estatísticas de tabelas do MaxCompute. Execute o comando a seguir para criar manualmente uma tarefa de coleta de estatísticas.

      -- Replace <table_name> with the MaxCompute table name
      ANALYZE TABLE <table_name>;
      Nota

      O CBO do StarRocks realiza estimativas de custo com base em várias estatísticas e seleciona o plano de execução de menor custo entre dezenas de milhares de opções, melhorando a eficiência e o desempenho de consultas complexas. Para mais informações, consulte Coletar estatísticas para o CBO.

      Atualize manualmente o cache de metadados

      Por padrão, o StarRocks armazena metadados do MaxCompute em cache para melhorar o desempenho das consultas. Após alterar o schema de uma tabela ou atualizar seus dados, atualize manualmente os metadados da tabela para garantir que o StarRocks recupere as informações mais recentes imediatamente.

      -- Replace <table_name> with the MaxCompute table name
      REFRESH EXTERNAL TABLE <table_name>;

      Perguntas frequentes

      Erro ao ler dados: Your slot quota is exceeded.

      • Análise do problema

        Esse erro ocorre quando o volume de leitura de dados excede a cota do Data Transmission Service. Durante as leituras, o StarRocks divide a tabela em vários shards e os distribui para nós BE, que usam pools de threads para ler dados simultaneamente. O número de slots ocupados durante a leitura é geralmente: Max(número de shards, número de BEs × concorrência do pool de threads do BE).

      • Solução

        • Adquira um grupo de recursos dedicado do Data Transmission Service com maior concorrência. Para instruções, consulte Purchase and use dedicated Data Transmission Service resource groups.

        • Ajuste o número de shards configurando os parâmetros ScanParams. Se você usar a estratégia de sharding row_offset, aumente também o parâmetro odps.split.row.count.

        • Modifique os parâmetros do pool de threads do BE do StarRocks scanner_thread_pool_queue_size e scanner_thread_pool_thread_num. Para detalhes, consulte Introdução ao StarRocks.

      Apêndice: Mapeamento de tipos

      Tipo de campo do MaxCompute

      Tipo de campo do StarRocks

      BOOLEAN

      BOOLEAN

      TINYINT

      TINYINT

      SMALLINT

      SMALLINT

      INT

      INT

      BIGINT

      BIGINT

      FLOAT

      FLOAT

      DOUBLE

      DOUBLE

      DECIMAL(p, s)

      DECIMAL(p, s)

      STRING

      VARCHAR(1073741824)

      VARCHAR(n)

      VARCHAR(n)

      CHAR(n)

      CHAR(n)

      JSON

      VARCHAR(1073741824)

      BINARY

      VARBINARY

      DATE

      DATE

      DATETIME

      DATETIME

      TIMESTAMP

      DATETIME

      Importante

      O StarRocks não possui um tipo TIMESTAMP. Ao ler dados TIMESTAMP, eles são tratados como DATETIME, o que resulta em perda de precisão.

      ARRAY

      ARRAY

      MAP

      MAP

      STRUCT

      STRUCT