Tous les produits
Search
Centre de documentation

MaxCompute:Connecteur StarRocks

Dernière mise à jour :Aug 21, 2026

Le connecteur StarRocks utilise le mécanisme External Catalog pour accéder de manière transparente aux sources de données MaxCompute, sans importer les données ni créer de tables externes, et exécuter des requêtes SQL complexes. Cette approche améliore l'efficacité de l'analyse des données tout en réduisant la complexité et les coûts opérationnels et de maintenance (O&M). Cette rubrique explique comment accéder à MaxCompute à l'aide du connecteur StarRocks.

Informations générales

StarRocks est une base de données MPP (Massively Parallel Processing) nouvelle génération à haute vitesse qui prend en charge plusieurs charges de travail analytiques de niveau entreprise, telles que l'analyse multidimensionnelle basée sur OLAP (Online Analytical Processing), la création de rapports personnalisés, l'analyse de données en temps réel et les requêtes ad hoc. Pour plus d'informations sur StarRocks, consultez Présentation de StarRocks. StarRocks prend en charge la fonctionnalité Catalog (catalogue de données), qui vous permet de gérer les données internes et externes au sein d'un même système et d'accéder facilement aux données stockées dans diverses sources externes. Pour plus d'informations, consultez Présentation du catalogue.

Prérequis

  • Déployez un cluster StarRocks version 3.2.3 ou ultérieure et assurez-vous que le cluster peut accéder correctement au service MaxCompute. Pour plus d'informations sur le déploiement d'un cluster StarRocks, consultez Déployer un cluster StarRocks shared-nothing à l'aide de Docker Compose.

  • Achetez un groupe de ressources Data Transmission Service dédié (abonnement) ou activez des ressources de stockage ouvert (paiement à l'utilisation).

Limites

  • La lecture des tables standard, des tables partitionnées, des tables clusterisées, des Delta Tables et des vues matérialisées est prise en charge. La lecture des tables externes ou des vues logiques n'est pas prise en charge.

  • La lecture des types de données JSON n'est pas prise en charge.

  • Seuls les projets MaxCompute avec Schema désactivé sont pris en charge. Pour plus de détails sur Schema, consultez Opérations Schema.

Créer un catalogue MaxCompute

Connectez-vous à StarRocks et créez un catalogue MaxCompute. Pour plus d'informations sur les External Catalogs, consultez Créer un catalogue externe.

Syntaxe

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

Descriptions des paramètres

  • Paramètres courants

    Paramètre

    Obligatoire

    Description

    catalog_name

    Oui

    Nom du catalogue MaxCompute. Respectez les règles de nommage suivantes :

    • Doit être composé de lettres (a–z ou A–Z), de chiffres (0–9) ou de traits de soulignement (_), et doit commencer par une lettre.

    • La longueur maximale est de 1 023 caractères.

    • Les noms de catalogue sont sensibles à la casse.

    type

    Oui

    Type de la source de données. Définissez ce paramètre sur odps.

    comment

    Non

    Description du catalogue MaxCompute.

    CatalogParams

    Oui

    Paramètres permettant à StarRocks d'accéder à MaxCompute.

    ScanParams

    Non

    Paramètres permettant à StarRocks d'accéder au stockage de fichiers MaxCompute.

    CachingMetaParams

    Non

    Paramètres définissant la politique de mise en cache des métadonnées.

  • Paramètres CatalogParams

    Paramètre

    Obligatoire

    Description

    odps.endpoint

    Oui

    Adresse de connexion du service MaxCompute. Configurez l'endpoint en fonction de la région et de la méthode de connectivité réseau sélectionnées lors de la création du projet MaxCompute. Pour connaître les valeurs d'endpoint par région et type de réseau, consultez Endpoint.

    Important

    Actuellement, seuls les réseaux VPC Alibaba Cloud sont pris en charge.

    odps.project

    Oui

    Nom du projet MaxCompute. Connectez-vous à la console MaxCompute et accédez à la page Workspace > Projects pour obtenir le nom du projet.

    Remarque

    Si vous avez créé un espace de travail en mode standard, faites la distinction entre les noms de projet de l'environnement de production et de l'environnement de développement (_dev) lors de la configuration de ce paramètre.

    odps.access.id

    Oui

    ID AccessKey de votre compte Alibaba Cloud ou utilisateur Resource Access Management (RAM). Accédez à la page de gestion des AccessKey pour obtenir l'ID AccessKey.

    odps.access.key

    Oui

    Secret AccessKey correspondant à l'ID AccessKey.

    odps.tunnel.quota

    Oui

  • Paramètres ScanParams

    Paramètre

    Obligatoire

    Description

    odps.split.policy

    Non

    Stratégie de fragmentation utilisée lors de l'analyse des données. Valeurs valides :

    • size (par défaut) : fragmentation par taille de données. Valeur par défaut : 256 Mo.

    • row_offset : fragmentation par nombre de lignes.

    Remarque

    La stratégie de fragmentation affecte considérablement la concurrence d'analyse des données dans le moteur de calcul. Si la stratégie par défaut ne répond pas à vos besoins, choisissez la stratégie row_offset et ajustez-la à l'aide du paramètre odps.split.row.count.

    odps.split.row.count

    Non

    Nombre maximal de lignes par fragment. Valeur par défaut : 4 194 304. Plage de valeurs : supérieure à 0.

    Remarque

    Configurez ce paramètre uniquement lorsque odps.split.policy est défini sur row_offset.

  • Paramètres CachingMetaParams

    Paramètre

    Obligatoire

    Description

    odps.cache.table.enable

    Non

    Indique s'il faut mettre en cache les métadonnées de table. Valeurs valides :

    • true (par défaut) : active la mise en cache des métadonnées de table. Cela améliore la vitesse de récupération et de mise à jour des métadonnées et convient aux scénarios impliquant des opérations DDL fréquentes, des environnements multi-utilisateurs de grande ampleur ou une optimisation complexe des requêtes.

    • false : désactive la mise en cache des métadonnées de table. Étant donné que les ressources de cache sont limitées et qu'une dépendance excessive au cache peut consommer trop de mémoire, désactivez la mise en cache pour les requêtes peu fréquentes ou les tables dont les métadonnées changent fréquemment.

    odps.cache.table.expire

    Non

    Intervalle de temps, en secondes (s), après lequel les métadonnées de table mises en cache sont automatiquement supprimées. Valeur par défaut : 86 400 (24 heures). Plage de valeurs : supérieure ou égale à 0.

    odps.cache.table.size

    Non

    Nombre d'entrées de métadonnées de table à mettre en cache. Valeur par défaut : 1 000.

    odps.cache.partition.enable

    Non

    Indique s'il faut mettre en cache les métadonnées de toutes les partitions sous la table cible. Valeurs valides :

    • true (par défaut) : active la mise en cache des métadonnées de toutes les partitions sous la table cible.

    • false : désactive la mise en cache. Les métadonnées de toutes les partitions ne sont pas mises en cache.

    Remarque

    Si la table n'est pas partitionnée, le paramètre odps.cache.partition.enable n'a aucun effet.

    odps.cache.partition.expire

    Non

    Intervalle de temps, en secondes (s), après lequel les métadonnées de partition mises en cache sont automatiquement supprimées. Valeur par défaut : 86 400 (24 heures). Plage de valeurs : supérieure ou égale à 0.

    odps.cache.partition.size

    Non

    Nombre de tables partitionnées dont les métadonnées peuvent être mises en cache. Valeur par défaut : 1 000.

    odps.cache.table-name.enable

    Non

    Indique s'il faut mettre en cache tous les noms de table dans le projet MaxCompute. Valeurs valides :

    • true : active la mise en cache de tous les noms de table dans le projet MaxCompute.

    • false (par défaut) : désactive la mise en cache de tous les noms de table dans le projet MaxCompute.

    odps.cache.table-name.expire

    Non

    Intervalle de temps, en secondes (s), après lequel les informations de nom de table mises en cache dans le projet MaxCompute sont automatiquement supprimées. Valeur par défaut : 86 400 (24 heures). Plage de valeurs : supérieure ou égale à 0.

Exemple

L'exemple suivant crée un catalogue MaxCompute nommé odps_catalog, en utilisant le projet MaxCompute mf_mc_bj comme exemple.

-- 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"
);

Accéder à MaxCompute

  1. Basculez vers le catalogue et le projet MaxCompute cibles. Cet exemple utilise odps_catalog et mf_mc_bj.

    • Syntaxe

      • Méthode 1

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

        USE <catalog_name>.<project_name>;
    • Exemple

      SET CATALOG odps_catalog;
      USE mf_mc_bj;
  2. Interrogez les données. Cet exemple utilise la table src.

SELECT * FROM src LIMIT 10;

Le résultat est le suivant.

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

Autres opérations

Afficher le catalogue MaxCompute

  • Listez tous les catalogues dans le cluster StarRocks actuel.

    SHOW CATALOGS;

    Le résultat est le suivant.

    +-----------------+----------+------------------------------------------------------------------+
    | Catalog         | Type     | Comment                                                          |
    +-----------------+----------+------------------------------------------------------------------+
    | default_catalog | Internal | An internal catalog contains this cluster‘s self-managed tables. |
    | odps_catalog    | Odps     | NULL                                                             |
    +-----------------+----------+------------------------------------------------------------------+
  • Affichez l'instruction CREATE pour un catalogue spécifique.

    SHOW CREATE CATALOG odps_catalog;

    Le résultat est le suivant.

    +--------------+--------------------------------------------------------------------------+
    | 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"
                    )|
    +-----------------------------------------------------------------------------------------+

Afficher le schéma de table MaxCompute

  • Décrivez le schéma d'une table MaxCompute.

    • Syntaxe

      DESC[RIBE] <catalog_name>.<database_name>.<table_name>;
    • Descriptions des paramètres

      • catalog_name : obligatoire. Nom du catalogue.

      • database_name : obligatoire. Nom du projet MaxCompute sous le catalogue cible.

      • table_name : obligatoire. Nom de la table sous le projet MaxCompute cible.

    • Exemple

      DESC odps_catalog.mf_mc_bj.src;

      Le résultat est le suivant.

      +-------+------+------+-------+---------+-------+
      | Field | Type | Null | Key   | Default | Extra |
      +-------+------+------+-------+---------+-------+
      | id    | INT  | Yes  | false | NULL    |       |
      | a     | INT  | Yes  | false | NULL    |       |
      +-------+------+------+-------+---------+-------+
  • Affichez le schéma de la table MaxCompute et son instruction CREATE TABLE.

    • Syntaxe

      SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
    • Descriptions des paramètres

      • catalog_name : obligatoire. Nom du catalogue.

      • database_name : obligatoire. Nom du projet MaxCompute sous le catalogue cible.

      • table_name : obligatoire. Nom de la table sous le projet MaxCompute cible.

    • Exemple

      SHOW CREATE TABLE odps_catalog.mf_mc_bj.src;

      Le résultat est le suivant.

      +-------+--------------------------------------------------------------------------------+
      | Table | Create Table                                                                   |
      +-------+--------------------------------------------------------------------------------+
      | src   | CREATE TABLE `src` (
        `id` int(11) DEFAULT NULL,
        `a` int(11) DEFAULT NULL
      ) |
      +-------+--------------------------------------------------------------------------------+

Supprimer un catalogue MaxCompute

Exécutez la commande suivante pour supprimer un catalogue MaxCompute.

DROP CATALOG odps_catalog;

Collecte de statistiques pour l'optimiseur basé sur les coûts (CBO)

La version actuelle de StarRocks ne prend pas en charge la collecte automatique des statistiques de table MaxCompute. Exécutez la commande suivante pour créer manuellement une tâche de collecte de statistiques.

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

Le CBO de StarRocks peut effectuer une estimation des coûts basée sur diverses statistiques et sélectionner le plan d'exécution au coût le plus faible parmi des dizaines de milliers de plans d'exécution, améliorant ainsi l'efficacité et les performances des requêtes complexes. Pour plus d'informations, consultez Collecter des statistiques pour CBO.

Actualiser manuellement le cache de métadonnées

Par défaut, StarRocks met en cache les métadonnées MaxCompute pour améliorer les performances des requêtes. Après avoir modifié le schéma d'une table ou mis à jour les données de la table, actualisez manuellement les métadonnées de la table pour garantir que StarRocks récupère immédiatement les dernières métadonnées.

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

FAQ

Erreur lors de la lecture des données : Your slot quota is exceeded.

  • Analyse du problème

    Cette erreur se produit lorsque le volume de données lu dépasse le quota Data Transmission Service. Lors des lectures, StarRocks divise la table en plusieurs fragments et les distribue aux nœuds BE, qui utilisent des pools de threads pour lire les données simultanément. Le nombre de slots occupés pendant la lecture est généralement : Max(nombre de fragments, nombre de BE × concurrence du pool de threads BE).

  • Solution

    • Achetez un groupe de ressources Data Transmission Service dédié avec une concurrence plus élevée. Pour obtenir des instructions, consultez Acheter et utiliser des groupes de ressources Data Transmission Service dédiés.

    • Ajustez le nombre de fragments en configurant les paramètres ScanParams. Si vous utilisez la stratégie de fragmentation row_offset, augmentez également le paramètre odps.split.row.count.

    • Modifiez les paramètres du pool de threads BE de StarRocks scanner_thread_pool_queue_size et scanner_thread_pool_thread_num. Pour plus de détails, consultez Présentation de StarRocks.

Annexe : Mappage des types

Type de champ MaxCompute

Type de champ 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

Important

StarRocks ne dispose pas de type TIMESTAMP. Lors de la lecture des données TIMESTAMP, elles sont traitées comme DATETIME, ce qui entraîne une perte de précision.

ARRAY

ARRAY

MAP

MAP

STRUCT

STRUCT