La API de metadatos es una interfaz estándar y de código abierto que proporciona Paimon para acceder a los metadatos de Data Lake Formation (DLF). La dependencia del SDK de esta API contiene únicamente clases relacionadas con Paimon, por lo que no genera conflictos con las dependencias de su aplicación.
Elegir un endpoint de acceso
La API de metadatos de DLF está disponible mediante dos endpoints. Elija uno según el lugar donde se ejecute su cliente:
Endpoint de VPC de DLF (recomendado): ofrece acceso de baja latencia desde una VPC incluida en la lista de permitidos de DLF. Los ejemplos de este tema utilizan un endpoint de VPC de DLF.
Endpoint de OpenAPI de Alibaba Cloud: proporciona acceso a través de la red pública. Es útil para escenarios como el acceso entre regiones y la depuración local. Para usar firmas con este endpoint, necesita un cliente de Paimon versión 1.4 o posterior. Esta versión es más reciente que la del SDK utilizada en la dependencia de Maven de este tema.
Requisitos previos
Antes de agregar una VPC a la lista de permitidos, otorgar permisos a un rol, añadir la dependencia de Maven y llamar a la API de metadatos de DLF, compruebe que se cumplen a continuación requisitos:
Acceso a la red: de forma predeterminada, la API de metadatos de DLF solo admite conexiones desde las VPC incluidas en la lista de permitidos. Si accede a DLF mediante un endpoint de VPC de DLF, su cliente debe ejecutarse en una VPC permitida.
Entorno de ejecución y rol: si utiliza la autenticación mediante roles de Elastic Compute Service (ECS), su cliente debe ejecutarse en una instancia de ECS o en un nodo de clúster de E-MapReduce (EMR) vinculado a un rol de ECS.
Catálogo de DLF: debe contar con un catálogo de DLF disponible y el rol de ECS debe tener permisos sobre dicho catálogo.
Credenciales de autorización: necesita una cuenta de Alibaba Cloud o credenciales de administrador de Resource Access Management (RAM). Estas credenciales son obligatorias para otorgar permisos de RAM al rol de ECS.
Versión del cliente: el cliente de Paimon debe cumplir con el requisito de versión del endpoint que utilice, tal como se describe en la sección anterior.
Configurar una lista de permitidos de VPC
Cuando activa DLF, el sistema sincroniza automáticamente los identificadores de VPC de su región actual con la lista de permitidos a nivel de usuario. Para agregar una VPC más adelante, añada su identificador en la consola de DLF:
Inicie sesión en la consola de Data Lake Formation (DLF).
En el panel de navegación izquierdo, haga clic en System & Security.
Haga clic en la pestaña System & Security y, a continuación, haga clic en Add VPC.
En el cuadro de diálogo que aparece, introduzca el identificador de la VPC desde la cual accederá a la API de metadatos de DLF y haga clic en OK.
Otorgar permisos de DLF a un rol
Otorgue al rol de ECS dos conjuntos de permisos: permisos de RAM en la consola de RAM y permisos de catálogo en la consola de DLF. Por ejemplo, en un clúster de EMR, el rol es AliyunECSInstanceForEMRRole.
-
Otorgue permisos de RAM al rol de ECS.
Inicie sesión en la consola de Resource Access Management (RAM) con su cuenta de Alibaba Cloud o como administrador de RAM.
Seleccione Identities > Roles y busque el rol de ECS.
En la columna Actions, haga clic en Add Permissions.
En Policies, busque y seleccione
AliyunDLFFullAccess, y luego haga clic en OK.
-
Otorgue permisos de DLF al rol de ECS.
Inicie sesión en la consola de Data Lake Formation (DLF).
En la página Catalogs, haga clic en el nombre del catálogo de destino.
Haga clic en la pestaña Permissions y, a continuación, haga clic en Grant Permissions.
-
En la página de autorización, configure a continuación parámetros y haga clic en OK.
Principal: seleccione un usuario o un rol de RAM.
-
Select DLF User: seleccione ECS Role en la lista desplegable.
NotaSi ECS Role no aparece en la lista desplegable de usuarios, seleccione System & Security > Access Control > Users y haga clic en Sync Users.
Predefined Permission Type: seleccione Data Editor.
Crear un cliente de API REST
Cree un cliente de API REST para llamar a la API de metadatos de DLF desde su aplicación Java.
Agregar la dependencia de Maven
Para hacer referencia al SDK de la API en su proyecto Java, agregue a continuación dependencia de Maven:
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-api</artifactId>
<version>1.3.0</version>
</dependency>
También puede descargar directamente el archivo JAR: paimon-api-1.3.0.jar.
Inicializar el cliente y llamar a la API
Elija un método de autenticación para el servicio REST de DLF según su entorno de ejecución:
Rol de ECS (recomendado): emite un token temporal a través de la instancia de ECS donde se ejecuta el cliente. El siguiente ejemplo utiliza este método.
Par de AccessKey: se conecta directamente al servicio REST de DLF al configurar
DLF_ACCESS_KEY_IDyDLF_ACCESS_KEY_SECRETenRESTCatalogOptions. Utilice este método cuando no haya ningún rol de ECS disponible en su entorno de ejecución.
El siguiente ejemplo crea un cliente RESTApi que se autentica con un rol de ECS y enumera las tablas de una base de datos. Reemplace el endpoint, el nombre del catálogo dlf_test y el nombre de la base de datos my_database con los valores correspondientes a su endpoint de región, catálogo de DLF y base de datos.
import org.apache.paimon.options.Options;
import org.apache.paimon.rest.RESTApi;
import static org.apache.paimon.options.CatalogOptions.WAREHOUSE;
import static org.apache.paimon.rest.RESTCatalogOptions.DLF_TOKEN_LOADER;
import static org.apache.paimon.rest.RESTCatalogOptions.TOKEN_PROVIDER;
import static org.apache.paimon.rest.RESTCatalogOptions.URI;
public class RESTApiExample {
public static void main(String[] args) {
Options options = new Options();
options.set(URI, "http://cn-hangzhou-vpc.dlf.aliyuncs.com");
options.set(WAREHOUSE, "dlf_test");
options.set(TOKEN_PROVIDER, "dlf");
options.set(DLF_TOKEN_LOADER, "ecs");
RESTApi api = new RESTApi(options);
System.out.println(api.listTables("my_database"));
}
}
Este ejemplo imprime el resultado que devuelve la llamada a listTables para la base de datos especificada.
A continuación se describen los parámetros.
|
Parámetro |
Descripción |
Obligatorio |
Ejemplo |
|
URI |
URI utilizada para acceder al servidor de catálogos REST de DLF, con el formato |
Sí |
|
|
WAREHOUSE |
Nombre del catálogo de DLF. |
Sí |
|
|
TOKEN_PROVIDER |
Proveedor del token. Establezca el valor en |
Sí |
|
|
DLF_TOKEN_LOADER |
Cargador del token. Establezca el valor en |
No |
|
|
DLF_ACCESS_KEY_ID |
Identificador de AccessKey utilizado para conectarse directamente al servicio REST de DLF, en lugar de usar la autenticación basada en ECS. Configure este parámetro en |
No |
- |
|
DLF_ACCESS_KEY_SECRET |
Clave secreta de AccessKey utilizada para conectarse directamente al servicio REST de DLF, en lugar de usar la autenticación basada en ECS. Configure este parámetro en |
No |
- |