Par défaut, DLF n'est accessible qu'à partir d'un VPC. Pour vous connecter à un catalogue DLF via Internet, par exemple depuis un environnement de développement local ou un réseau interrégional, un administrateur DLF doit activer l'accès public et configurer le client en conséquence. Cette rubrique explique comment activer l'accès public et configurer la connectivité pour Paimon et Iceberg.
Limites
L'accès public est actuellement en version bêta publique et ouvert à tous les utilisateurs.
SLA et performances de la version bêta publique : Aucun SLA n'est fourni pendant la version bêta publique. Les fonctionnalités principales du service restent entièrement disponibles. L'accès public est soumis aux variations des liaisons Internet, ce qui entraîne une latence plus élevée et un débit plus faible que l'accès via VPC. Ce mode n'est pas destiné aux charges de travail de production à grande échelle et à forte concurrence.
Paimon : Utilisez la version 1.4.1 ou ultérieure du client Paimon (Java ou Python).
-
Iceberg : Nécessite le plug-in
dlf-iceberg-plugin. Configurations requises :Apache Iceberg : 1.10.1
dlf-iceberg-plugin : 1.2.0 ou ultérieur
Restrictions de nommage : Seuls les lettres, chiffres et certains symboles sont pris en charge pour les noms de bases de données et de tables.
Configuration requise : Lors de l'accès à DLF via Internet, vous devez configurer l'endpoint public OSS.
Facturation
L'accès public est gratuit pendant la version bêta publique. Des frais s'appliqueront une fois la version bêta terminée. Les détails tarifaires seront annoncés séparément.
Activer l'accès public
Pour des raisons de sécurité, l'accès public à DLF est désactivé par défaut. Pour l'activer, un administrateur DLF doit effectuer les étapes suivantes :
Connectez-vous à la console DLF
Dans le volet de navigation de gauche, choisissez Catalogs.
Cliquez sur le catalogue de données cible, puis cliquez sur l'onglet Catalog Configuration.
Dans la section Advanced Settings, définissez
enable.openapisurtrue.
Configurer l'accès public
Accéder aux tables Paimon via Internet
Les exemples suivants illustrent la connexion à un catalogue DLF Paimon via Internet.
Format de l'endpoint : https://dlfnext.${region-id}.aliyuncs.com. Pour connaître les endpoints spécifiques à chaque région, consultez la section Régions et endpoints.
Java
Options options = new Options();
// Configure the DLF public network endpoint
options.set("uri", "https://dlfnext.cn-hangzhou.aliyuncs.com");
options.set("warehouse", "paimon_test");
options.set("dlf.region", "cn-hangzhou");
options.set("dlf.access-key-id", "<Your AccessKey ID>");
options.set("dlf.access-key-secret", "<Your AccessKey Secret>");
// You must configure the OSS public network endpoint
options.set("dlf.oss-endpoint", "oss-cn-hangzhou.aliyuncs.com");
options.set("token.provider", "dlf");
Catalog restCatalog = new RESTCatalog(CatalogContext.create(options));
Le tableau suivant répertorie les paramètres de configuration pour Java.
|
Paramètre |
Description |
Exemple |
|
uri |
L'endpoint public pour l'API OpenAPI DLF. Pour les valeurs spécifiques à chaque région, consultez la section Régions et endpoints. |
https://dlfnext.cn-hangzhou.aliyuncs.com |
|
warehouse |
Le nom du catalogue de données DLF. |
paimon_test |
|
dlf.region |
L'ID de région du service DLF. |
cn-hangzhou |
|
dlf.access-key-id |
L'ID AccessKey de votre compte Alibaba Cloud ou utilisateur RAM. |
- |
|
dlf.access-key-secret |
La clé secrète AccessKey de votre compte Alibaba Cloud ou utilisateur RAM. |
- |
|
dlf.oss-endpoint |
L'endpoint public OSS. Pour plus d'informations, consultez la section Régions et endpoints de la documentation OSS. |
oss-cn-hangzhou.aliyuncs.com |
|
token.provider |
Le fournisseur d'authentification. Définissez-le sur |
dlf |
Python
from pypaimon import CatalogFactory
options = {
# The Python client must specify the metastore type as rest
'metastore': 'rest',
'uri': 'https://dlfnext.cn-hangzhou.aliyuncs.com',
'warehouse': 'paimon_test',
'dlf.region': 'cn-hangzhou',
'dlf.access-key-id': '<Your AccessKey ID>',
'dlf.access-key-secret': '<Your AccessKey Secret>',
# Configure this parameter if you use STS temporary credentials
'dlf.security-token': '<Your Security Token>',
'dlf.oss-endpoint': 'oss-cn-hangzhou.aliyuncs.com',
'token.provider': 'dlf',
}
rest_catalog = CatalogFactory.create(options)
Le tableau suivant répertorie les paramètres de configuration pour Python.
|
Paramètre |
Description |
Exemple |
|
metastore |
Le type de métastore. Valeur fixe : |
rest |
|
uri |
L'endpoint public pour l'API OpenAPI DLF. Pour les valeurs spécifiques à chaque région, consultez la section Régions et endpoints. |
https://dlfnext.cn-hangzhou.aliyuncs.com |
|
warehouse |
Le nom du catalogue de données DLF. |
paimon_test |
|
dlf.region |
L'ID de région du service DLF. |
cn-hangzhou |
|
dlf.access-key-id |
L'ID AccessKey de votre compte Alibaba Cloud ou utilisateur RAM. |
- |
|
dlf.access-key-secret |
La clé secrète AccessKey de votre compte Alibaba Cloud ou utilisateur RAM. |
- |
|
dlf.security-token |
Le jeton de sécurité STS. Non requis lors de l'utilisation d'une paire AccessKey à long terme. |
- |
|
dlf.oss-endpoint |
L'endpoint public pour OSS. Pour plus d'informations, consultez la section Régions et endpoints de la documentation OSS. |
oss-cn-hangzhou.aliyuncs.com |
|
token.provider |
Le fournisseur d'authentification. Définissez-le sur |
dlf |
Accéder aux tables Iceberg via Internet
Les exemples suivants illustrent la connexion à un catalogue DLF Iceberg via Internet.
Format de l'endpoint : https://dlfnext.${region-id}.aliyuncs.com/iceberg (l'endpoint public REST Paimon avec le chemin /iceberg ajouté). Pour connaître les endpoints spécifiques à chaque région, consultez la section Régions et endpoints.
Dépendances Maven
L'authentification publique et les opérations d'E/S de fichiers sont gérées par le plug-in dlf-iceberg-plugin, disponible dans le référentiel Maven DLF. Les lectures et écritures de données OSS nécessitent JindoSDK. Ajoutez les dépendances suivantes à votre projet :
<properties>
<iceberg.version>1.10.1</iceberg.version>
<dlf-iceberg-plugin.version>1.2.0</dlf-iceberg-plugin.version>
<jindo.version>6.7.8</jindo.version>
</properties>
<repositories>
<!-- Repository for dlf-iceberg-plugin -->
<repository>
<id>dlf-mvn-repo</id>
<url>https://dlf-mvn-repo.oss-cn-shanghai.aliyuncs.com/mvn-repo/release/</url>
</repository>
<!-- JindoSDK repository -->
<repository>
<id>jindodata</id>
<url>https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/mvn-repo/</url>
</repository>
</repositories>
<dependencies>
<!-- DLF Iceberg plugin: DlfRESTCatalog + RESTDLFAuthManager public network authentication + DlfFileIO -->
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>dlf-iceberg-plugin-1.10.1</artifactId>
<version>${dlf-iceberg-plugin.version}</version>
</dependency>
<!-- Apache Iceberg -->
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-core</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-data</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-parquet</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-aws-bundle</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-aws</artifactId>
<version>${iceberg.version}</version>
</dependency>
<!-- OSS data reads and writes (JindoSDK) -->
<dependency>
<groupId>com.aliyun.jindodata</groupId>
<artifactId>jindo-sdk</artifactId>
<version>${jindo.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.jindodata</groupId>
<artifactId>jindo-core</artifactId>
<version>${jindo.version}</version>
</dependency>
</dependencies>
Java
Map<String, String> options = new HashMap<>();
options.put("uri", "https://dlfnext.cn-hangzhou.aliyuncs.com/iceberg");
options.put("warehouse", "iceberg_test");
// Public network authentication: RESTDLFAuthManager
options.put("rest.auth.type", "org.apache.iceberg.rest.auth.RESTDLFAuthManager");
options.put("rest.signing-region", "cn-hangzhou");
options.put("rest.access-key-id", "your-access-key-id");
options.put("rest.secret-access-key", "your-access-key-secret");
// options.put("rest.session-token", "your-security-token"); // Configure when using STS temporary credentials
options.put("io-impl", "org.apache.iceberg.rest.DlfFileIO");
options.put("dlf.oss-endpoint", "oss-cn-hangzhou.aliyuncs.com");
// Use DlfRESTCatalog provided by dlf-iceberg-plugin
RESTCatalog catalog = new org.apache.iceberg.rest.DlfRESTCatalog();
catalog.initialize("dlf", options);
Le tableau suivant répertorie les paramètres de configuration.
|
Paramètre |
Description |
Exemple |
|
uri |
L'endpoint public pour DLF Iceberg. Format : |
https://dlfnext.cn-hangzhou.aliyuncs.com/iceberg |
|
warehouse |
Le nom du catalogue de données DLF. |
iceberg_test |
|
rest.auth.type |
La méthode d'authentification publique. Valeur fixe : |
org.apache.iceberg.rest.auth.RESTDLFAuthManager |
|
rest.signing-region |
L'ID de région du service DLF. |
cn-hangzhou |
|
rest.access-key-id |
L'ID AccessKey de votre compte Alibaba Cloud ou utilisateur RAM. |
- |
|
rest.secret-access-key |
La clé secrète AccessKey de votre compte Alibaba Cloud ou utilisateur RAM. |
- |
|
rest.session-token |
Le jeton de sécurité STS. Non requis lors de l'utilisation d'une paire AccessKey à long terme. |
- |
|
io-impl |
L'implémentation d'E/S de fichiers. Valeur fixe : |
org.apache.iceberg.rest.DlfFileIO |
|
dlf.oss-endpoint |
L'endpoint public pour OSS. Pour plus d'informations, consultez la section Régions et endpoints de la documentation OSS. |
oss-cn-hangzhou.aliyuncs.com |