De forma predeterminada, DLF solo es accesible desde dentro de una VPC. Para conectarse a un catálogo de DLF por internet (por ejemplo, desde un entorno de desarrollo local o una red entre regiones), un administrador de DLF debe habilitar el acceso a la red pública y configurar el cliente en consecuencia. Este tema explica cómo habilitar el acceso a la red pública y establecer la conectividad para Paimon e Iceberg.
Limitaciones
El acceso a la red pública se encuentra actualmente en versión beta pública y está abierto a todos los usuarios.
SLA y rendimiento de la versión beta pública: no se proporciona ningún SLA durante la versión beta pública. La funcionalidad principal del servicio permanece totalmente available. El acceso a la red pública está sujeto a la variabilidad del enlace de internet, lo que provoca una latencia mayor y un rendimiento inferior en comparación con el acceso mediante VPC. Este modo no está diseñado para cargas de trabajo de producción a gran escala ni con alta concurrencia.
Paimon: utilice la versión 1.4.1 o posterior del cliente de Paimon (Java o Python).
-
Iceberg: requiere
dlf-iceberg-plugin. Requisitos de versión:Apache Iceberg: 1.10.1
dlf-iceberg-plugin: 1.2.0 o posterior
Restricciones de nombres: solo se admiten letras, dígitos y símbolos específicos en los nombres de bases de datos y tablas.
Requisito de parámetro: al acceder a DLF por la red pública, configure el endpoint público de OSS.
Facturación
El acceso a la red pública es gratuito durante la versión beta pública. Se aplicarán cargos una vez que concluya la versión beta. Los detalles de precios se anunciarán por separado.
Habilitar el acceso a la red pública
Por motivos de seguridad, el acceso a la red pública de DLF está deshabilitado de forma predeterminada. Para habilitarlo, un administrador de DLF debe seguir estos pasos:
Inicie sesión en la consola de DLF
En el panel de navegación izquierdo, elija Catalogs.
Haga clic en el catálogo de datos de destino y luego haga clic en la pestaña Catalog Configuration.
En la sección Advanced Settings, establezca
enable.openapientrue.
Configurar el acceso a la red pública
Acceder a tablas de Paimon por la red pública
A continuación se muestran ejemplos de conexión a un catálogo de Paimon de DLF por la red pública.
Formato del endpoint: https://dlfnext.${region-id}.aliyuncs.com. Para consultar los endpoints específicos de cada región, consulte Regions and 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));
La siguiente tabla muestra los parámetros de configuración para Java.
|
Parámetro |
Descripción |
Ejemplo |
|
uri |
Endpoint de red pública para la openapi de DLF. Para consultar los valores específicos de cada región, consulte Regions and endpoints. |
https://dlfnext.cn-hangzhou.aliyuncs.com |
|
warehouse |
Nombre del catálogo de datos de DLF. |
paimon_test |
|
dlf.region |
Identificador de la región del servicio de DLF. |
cn-hangzhou |
|
dlf.access-key-id |
AccessKey ID de su cuenta de Alibaba Cloud o usuario de RAM. |
- |
|
dlf.access-key-secret |
AccessKey Secret de su cuenta de Alibaba Cloud o usuario de RAM. |
- |
|
dlf.oss-endpoint |
Endpoint de red pública de OSS. Para obtener más información, consulte Regions and endpoints en la documentación de OSS. |
oss-cn-hangzhou.aliyuncs.com |
|
token.provider |
Proveedor de autenticación. Establézcalo en |
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)
La siguiente tabla muestra los parámetros de configuración para Python.
|
Parámetro |
Descripción |
Ejemplo |
|
metastore |
Tipo de metastore. Valor fijo: |
rest |
|
uri |
Endpoint de red pública para la openapi de DLF. Para consultar los valores específicos de cada región, consulte Regions and endpoints. |
https://dlfnext.cn-hangzhou.aliyuncs.com |
|
warehouse |
Nombre del catálogo de datos de DLF. |
paimon_test |
|
dlf.region |
Identificador de la región del servicio de DLF. |
cn-hangzhou |
|
dlf.access-key-id |
AccessKey ID de su cuenta de Alibaba Cloud o usuario de RAM. |
- |
|
dlf.access-key-secret |
AccessKey Secret de su cuenta de Alibaba Cloud o usuario de RAM. |
- |
|
dlf.security-token |
Token de seguridad de STS. No es obligatorio cuando se utiliza un par de AccessKey permanente. |
- |
|
dlf.oss-endpoint |
Endpoint de red pública de OSS. Para obtener más información, consulte Regions and endpoints en la documentación de OSS. |
oss-cn-hangzhou.aliyuncs.com |
|
token.provider |
Proveedor de autenticación. Establézcalo en |
dlf |
Acceder a tablas de Iceberg por la red pública
A continuación se muestran ejemplos de conexión a un catálogo de Iceberg de DLF por la red pública.
Formato del endpoint: https://dlfnext.${region-id}.aliyuncs.com/iceberg (el endpoint público REST de Paimon con la ruta /iceberg agregada). Para consultar los endpoints específicos de cada región, consulte Regions and endpoints.
Dependencias de Maven
La autenticación de red pública y las operaciones de entrada y salida de archivos se gestionan mediante dlf-iceberg-plugin, disponible en el repositorio de Maven de DLF. Las lecturas y escrituras de datos en OSS requieren JindoSDK. Agregue las siguientes dependencias a su proyecto:
<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);
La siguiente tabla muestra los parámetros de configuración.
|
Parámetro |
Descripción |
Ejemplo |
|
uri |
Endpoint de red pública para Iceberg de DLF. Formato: |
https://dlfnext.cn-hangzhou.aliyuncs.com/iceberg |
|
warehouse |
Nombre del catálogo de datos de DLF. |
iceberg_test |
|
rest.auth.type |
Método de autenticación de red pública. Valor fijo: |
org.apache.iceberg.rest.auth.RESTDLFAuthManager |
|
rest.signing-region |
Identificador de la región del servicio de DLF. |
cn-hangzhou |
|
rest.access-key-id |
AccessKey ID de su cuenta de Alibaba Cloud o usuario de RAM. |
- |
|
rest.secret-access-key |
AccessKey Secret de su cuenta de Alibaba Cloud o usuario de RAM. |
- |
|
rest.session-token |
Token de seguridad de STS. No es obligatorio cuando se utiliza un par de AccessKey permanente. |
- |
|
io-impl |
Implementación de entrada y salida de archivos. Valor fijo: |
org.apache.iceberg.rest.DlfFileIO |
|
dlf.oss-endpoint |
Endpoint de red pública de OSS. Para obtener más información, consulte Regions and endpoints en la documentación de OSS. |
oss-cn-hangzhou.aliyuncs.com |