Tous les produits
Search
Centre de documentation

Data Lake Formation:Accéder à DLF depuis MaxCompute

Dernière mise à jour :Aug 20, 2026

Les projets externes MaxCompute sont mappés aux catalogues Data Lake Formation (DLF), ce qui permet à MaxCompute d'accéder en lecture et en écriture en temps réel aux tables au format Paimon stockées dans Object Storage Service (OSS) géré par DLF. La gestion des autorisations est déléguée à DLF, et le mappage au niveau du catalogue permet une collaboration multi-moteurs sur les métadonnées partagées du data lake.

Les projets externes Paimon_DLF sont actuellement en aperçu sur invitation.

Limites

  • Seules les tables au format Paimon stockées dans OSS géré par DLF sont prises en charge.

  • L'écriture dans les tables Dynamic Bucket n'est pas prise en charge.

  • L'écriture dans les tables Cross Partition n'est pas prise en charge.

Fonctionnement des autorisations

L'accès aux données Paimon_DLF depuis MaxCompute nécessite de satisfaire deux couches d'autorisation indépendantes. Configurez les deux couches ; l'absence de l'une ou l'autre entraîne des erreurs d'accès.

Couche

Ce qu'elle contrôle

Où elle est gérée

Plan de contrôle

Opérations de la console — création d'un projet externe et attachement d'un catalogue DLF

Console RAM

Plan de données

Opérations SQL — lecture et écriture des tables Paimon, gestion des schémas et des tables dans le catalogue DLF attaché

Console DLF

MaxCompute transmet l'identité de l'exécuteur de la tâche actuelle à DLF lors de la lecture ou de l'écriture des données. Chaque système applique ensuite son propre périmètre d'autorisation de manière indépendante.

Configurer l'intégration

Étape

Action

Objectif

1

Accorder des autorisations

Autoriser l'accès aux ressources cloud, activer DLF et créer un rôle lié au service

2

Créer une source de données externe Paimon_DLF

Définir la connexion entre MaxCompute et DLF

3

Créer un projet externe

Mapper un catalogue DLF à un projet MaxCompute

4

Interroger et écrire des données à l'aide de SQL

Lire et écrire des tables Paimon dans OSS géré par DLF

Étape 1 : Accorder des autorisations

Le tableau suivant indique quel type de compte effectue chaque tâche de cette étape.

Tâche

Effectuée par

Accorder des stratégies RAM à un utilisateur RAM

Propriétaire du compte Alibaba Cloud

Autoriser l'accès aux ressources cloud dans la console DLF

Propriétaire du compte Alibaba Cloud

Activer DLF

Propriétaire du compte Alibaba Cloud

Créer le rôle lié au service MaxCompute

Propriétaire du compte Alibaba Cloud

Accorder des autorisations de données DLF aux utilisateurs RAM

Administrateur du data lake (console DLF)

Accorder des stratégies RAM à un utilisateur RAM

Si vous utilisez un utilisateur Resource Access Management (RAM), attachez les stratégies suivantes. Pour obtenir des instructions, consultez Accorder des autorisations à un utilisateur RAM.

Stratégie

Requise pour

AliyunRAMFullAccess

Doit être accordée par le propriétaire du compte Alibaba Cloud si l'utilisateur RAM ne la possède pas

AliyunMaxComputeFullAccess

Création de sources de données externes et de projets externes

AliyunDLFReadOnlyAccess

Création de projets externes — accorde l'autorisation List sur le catalogue DLF

Autoriser l'accès aux ressources cloud et activer DLF

  1. Connectez-vous à la console DLF et sélectionnez votre région dans le coin supérieur gauche.

  2. À droite de Permissions to access cloud resources are granted., cliquez sur Authorize.

  3. Cliquez sur Activate à droite de DLF is activated.

    MaxCompute et DLF doivent se trouver dans la même région.

Créer un rôle lié au service pour MaxCompute

MaxCompute utilise le rôle lié au service AliyunServiceRoleForMaxComputeLakehouse pour accéder aux données DLF. Créez ce rôle dans la console RAM :

  1. Connectez-vous à la console RAM.

  2. Dans le volet de navigation de gauche, choisissez Identities > Roles.

  3. Sur la page Roles, cliquez sur Create Role.

  4. Dans le coin supérieur droit, cliquez sur Create Service Linked Role.

  5. Définissez Select Service sur AliyunServiceRoleForMaxComputeLakehouse, puis cliquez sur Create Service Linked Role. Si un message indique que le rôle existe déjà, il est déjà autorisé. Aucune autre action n'est nécessaire.

Accorder des autorisations de données DLF aux utilisateurs RAM

Les autorisations du plan de données sont gérées dans la console DLF. Connectez-vous à la console DLF et accordez des autorisations aux utilisateurs RAM qui doivent lire ou écrire des tables Paimon.

Étape 2 : Créer une source de données externe Paimon_DLF

  1. Connectez-vous à la console MaxCompute et sélectionnez votre région.

  2. Dans le volet de navigation de gauche, choisissez Manage Configurations > External Data Source.

  3. Cliquez sur Create External Data Source.

  4. Configurez les paramètres suivants :

    Paramètre

    Obligatoire

    Description

    External Data Source Type

    Obligatoire

    Sélectionnez Paimon_DLF

    External Data Source Name

    Obligatoire

    Commence par une lettre ; lettres minuscules, traits de soulignement et chiffres uniquement ; maximum 128 caractères. Exemple : paimon_dlf

    Description

    Facultatif

    Description personnalisée

    Region

    Obligatoire

    Par défaut, la région actuelle

    Authentication And Authorization

    Obligatoire

    Par défaut, Alibaba Cloud RAM role

    Service-linked Role

    Obligatoire

    Généré automatiquement

    Endpoint

    Obligatoire

    Généré automatiquement. Pour la région Chine (Hangzhou) : cn-hangzhou-intranet.dlf.aliyuncs.com

    Foreign Server Supplemental Properties

    Facultatif

    Attributs supplémentaires pour la source de données externe

  5. Cliquez sur OK.

  6. Sur la page External Data Source, recherchez la nouvelle source de données et cliquez sur Details dans la colonne Actions pour vérifier la configuration.

Étape 3 : Créer un projet externe

  1. Connectez-vous à la console MaxCompute et sélectionnez votre région.

  2. Dans le volet de navigation de gauche, choisissez Manage Configurations > Projects.

  3. Sous l'onglet External Project, cliquez sur Create Project.

  4. Configurez les paramètres suivants et cliquez sur OK :

    Paramètre

    Obligatoire

    Description

    Project Type

    Obligatoire

    Par défaut, External Project

    Region

    Obligatoire

    Par défaut, la région actuelle ; ne peut pas être modifiée

    Project Name (Globally Unique)

    Obligatoire

    Commence par une lettre ; lettres, chiffres et traits de soulignement uniquement ; 3 à 28 caractères

    MaxCompute Foreign Server Type

    Facultatif

    Par défaut, Paimon_DLF

    MaxCompute Foreign Server

    Facultatif

    Use Existing pour sélectionner une source de données externe précédemment créée, ou Create Foreign Server pour en créer une nouvelle

    MaxCompute Foreign Server Name

    Obligatoire

    Sélectionnez parmi les sources de données existantes, ou saisissez le nom de la nouvelle

    Data Catalog

    Obligatoire

    Le catalogue de données DLF à attacher

    Billing Method

    Obligatoire

    Subscription ou Pay-as-you-go

    Default Quota

    Obligatoire

    Sélectionnez un quota existant

    Description

    Facultatif

    Description personnalisée

Étape 4 : Interroger et écrire des données à l'aide de SQL

Sélectionnez un outil de connexion pour vous connecter au projet externe, puis utilisez les commandes SQL suivantes.

Lister les schémas

-- Enable schema syntax at the session level.
SET odps.namespace.schema=true;
SHOW schemas;

-- Sample output:
-- ID = 20250919****am4qb
-- default
-- system
-- OK

Lister les tables d'un schéma

-- Replace <schema_name> with the schema name shown in the output above.
USE schema <schema_name>;
SHOW tables;

-- Sample output:
-- ID = 20250919****am4qb
-- acs:ram::<uid>:root  emp
-- OK

Créer un schéma

-- Replace <schema_name> with your schema name.
CREATE schema <schema_name>;

Créer une table et insérer des données

Lors de l'écriture de données TIMESTAMP dans une table source Paimon, les données sont tronquées en fonction de leur précision : une précision de 0 à 3 est tronquée à 3 décimales, une précision de 4 à 6 est tronquée à 6 décimales, et une précision de 7 à 9 est tronquée à 9 décimales.

Format de la commande :

-- Create a table.
CREATE TABLE [IF NOT EXISTS] <table_name>
(
  <col_name> <data_type>,
  ...
)
[COMMENT <table_comment>]
[PARTITIONED BY (<col_name> <data_type>, ...)]
;

-- Insert data.
INSERT {INTO|OVERWRITE} TABLE <table_name> [PARTITION (<pt_spec>)] [(<col_name> [,<col_name> ...])]
<select_statement>
FROM <from_statement>

Exemple — créer une table et insérer des lignes :

CREATE TABLE schema_table(id int, name string);

INSERT INTO schema_table VALUES (101, 'Zhang San'), (102, 'Li Si');

-- Verify the data.
SELECT * FROM schema_table;

-- Result:
-- +------------+------------+
-- | id         | name       |
-- +------------+------------+
-- | 101        | Zhang San  |
-- | 102        | Li Si      |
-- +------------+------------+
Si vous êtes connecté en tant qu'utilisateur RAM, la création de tables et l'insertion de données nécessitent des autorisations de catalogue DLF. Consultez Gestion des autorisations de données .

Lire et écrire dans le schéma par défaut

USE schema default;
SHOW tables;

-- Sample output:
-- ID = 20250919*******yg5
-- acs:ram::<uid>:root  emp
-- acs:ram::<uid>:root  emp_detail
-- acs:ram::<uid>:root  test_table
-- OK

-- Read data.
SELECT * FROM test_table;

-- Result:
-- +------------+------------+
-- | id         | name       |
-- +------------+------------+
-- | 101        | Zhang San  |
-- | 102        | Li Si      |
-- +------------+------------+

-- Write data and verify.
INSERT INTO test_table VALUES (103, 'Wang Wu');

SELECT * FROM test_table;

-- Result:
-- +------------+------------+
-- | id         | name       |
-- +------------+------------+
-- | 101        | Zhang San  |
-- | 102        | Li Si      |
-- | 103        | Wang Wu    |
-- +------------+------------+

Dépannage

« You are not authorized to perform this action » lors de la création d'un projet externe

L'utilisateur RAM ne dispose pas des autorisations requises. Vérifiez les points suivants :

Le code d'erreur dans les détails de l'erreur est NoMCPermission.

  1. Vérifiez que AliyunMaxComputeFullAccess est attachée à l'utilisateur RAM. Consultez Étape 1.

  2. Vérifiez que les autorisations DLF sont accordées. La création d'un projet externe Paimon_DLF nécessite la sélection d'un catalogue DLF, ce qui requiert un accès à DLF. Consultez Étape 1.

« Forbidden: User acs:ram::\<uid\>:user/\\ doesn't have privilege LIST on DATABASE default » lors de l'exécution de SHOW TABLES

L'utilisateur RAM ne dispose pas des autorisations du plan de données sur le catalogue DLF.

  1. Connectez-vous à la console DLF. Dans le volet de navigation de gauche, cliquez sur System And Security. Sous l'onglet Access Control, actualisez la page et vérifiez si l'utilisateur RAM apparaît.

  2. Si l'utilisateur existe, cliquez sur Roles et accordez les autorisations requises à l'utilisateur RAM.