En esta guía se describen los metadatos de Dataplex Universal Catalog para lagos, zonas y recursos, así como la forma de usar la API de Dataplex para gestionarlos.
Información general
Dataplex Universal Catalog analiza lo siguiente:
- Activos de datos estructurados y semiestructurados en lagos de datos para extraer metadatos de tablas en entidades de tabla
- Datos no estructurados, como imágenes y textos, para extraer metadatos de conjuntos de archivos en entidades de conjuntos de archivos
Puedes usar la API de metadatos de Dataplex Universal Catalog para hacer lo siguiente:
- Ver, editar y eliminar metadatos de entidades de tablas y conjuntos de archivos
- Crear metadatos de entidades de tabla o de conjunto de archivos
Puede analizar los metadatos de Dataplex Universal Catalog de las siguientes formas:
- Data Catalog (obsoleto) para buscar y etiquetar
- Dataproc Metastore y BigQuery para consultar metadatos de tablas y procesar analíticas
API de Dataplex
En esta sección se resumen los recursos de lagos, zonas y recursos de la API Dataplex, así como los recursos clave asociados.
API del plano de control
La API del plano de control de Dataplex Universal Catalog permite crear y gestionar los recursos de lagos, zonas y recursos.
Lago: una instancia del servicio Dataplex Universal Catalog que permite gestionar recursos de almacenamiento en proyectos de una organización.
Zona: agrupación lógica de recursos de un lago. Usa varias zonas en un lago para organizar los datos en función de su preparación, carga de trabajo o estructura de la organización.
Recursos: recursos de almacenamiento con datos almacenados en segmentos de Cloud Storage o conjuntos de datos de BigQuery que están asociados a una zona de un lago.
API Metadata
Usa la API de metadatos de Dataplex Universal Catalog para crear y gestionar metadatos en entidades de tabla y de conjunto de archivos, así como en particiones. Dataplex Universal Catalog analiza los recursos de datos, ya sea en un lago o proporcionados por ti, para crear entidades y particiones. Las entidades y las particiones mantienen referencias a los recursos asociados y a las ubicaciones de almacenamiento físico.
Conceptos clave
- Entidad de tabla:
Metadatos de datos estructurados con esquemas bien definidos. Las entidades de tabla se identifican de forma única por el ID de entidad y la ubicación de los datos. Los metadatos de las entidades de tabla se pueden consultar en BigQuery y Dataproc Metastore:
- Objetos de Cloud Storage: metadatos de objetos de Cloud Storage, a los que se accede a través de las APIs de Cloud Storage.
- Tablas de BigQuery: metadatos de las tablas de BigQuery, a los que se accede a través de las APIs de BigQuery.
- Entidad Fileset:
Metadatos sobre datos sin estructurar, normalmente sin esquema. Los conjuntos de archivos se identifican de forma única por el ID de entidad y la ubicación de los datos. Cada conjunto de archivos tiene un formato de datos.
- Particiones:
Metadatos de un subconjunto de datos de una tabla o una entidad de conjunto de archivos, identificados por un conjunto de pares clave-valor y una ubicación de datos.
Prueba la API
Consulta las páginas de referencia de las APIs lakes.zones.entities y lakes.zones.partitions de Dataplex Universal Catalog para ver los parámetros y los campos asociados a cada API. Usa el panel Probar esta API que acompaña a la documentación de referencia de cada método de la API para hacer solicitudes a la API con diferentes parámetros y campos. Puedes crear, ver y enviar tus solicitudes sin tener que generar credenciales y, después, ver las respuestas devueltas por el servicio.
En las siguientes secciones se proporciona información para ayudarte a entender y usar las APIs de metadatos de Universal Catalog de Dataplex.
Entidades
Mostrar entidades
Para limitar la lista de entidades devueltas por el servicio, añade parámetros de consulta filter a la URL de la solicitud list entities
.
Obtener entidad
De forma predeterminada, la respuesta Get Entity
contiene metadatos básicos de la entidad. Para obtener metadatos de esquema adicionales, añade el parámetro de consulta view a la URL de la solicitud.
Detalles de compatibilidad: aunque los metadatos del catálogo universal de Dataplex se registran de forma centralizada en la API de metadatos, solo se publican en BigQuery y Dataproc Metastore los metadatos de las tablas de entidades que son compatibles con BigQuery y Apache Hive Metastore.
La API Get Entity
devuelve un mensaje CompatibilityStatus
que indica si los metadatos de la tabla son compatibles con BigQuery y Hive Metastore. Si no lo son, se indica el motivo de la incompatibilidad.
Actualizar entidad
Usa esta API para editar los metadatos de las entidades, incluido si tú o Dataplex Universal Catalog gestionará los metadatos de las entidades.
- Esta API sustituye por completo todos los campos mutables Entity. Los siguientes campos de Entity son inmutables y, si los especifica en una solicitud de actualización, se ignorarán:
- Especifica un valor para todos los campos de entidad mutables, incluidos todos los campos del esquema, aunque no se cambien los valores.
- Indica el campo etag. Para obtener el etag, primero debes enviar una solicitud entities.get, que devuelve el
etag
de la entidad en la respuesta. - Actualizar campos de esquema: puedes actualizar el esquema de la tabla descubierto por Dataplex Universal Catalog para mejorar su precisión:
- Si el esquema es un conjunto de archivos, deja todos los campos de esquema vacíos.
- Para definir un campo repetido, asigna el valor
REPEATED
a mode. Para definir un campo de struct, asigna el valorRECORD
al tipo. - Puedes definir el campo
userManaged
del esquema para especificar si tú o Dataplex Universal Catalog gestionáis los metadatos de la tabla. La opción predeterminada es gestionado por Dataplex Universal Catalog. SiuserManaged
tiene el valor true, este ajuste se incluye en la información devuelta de una solicitudentities.get
si EntityView tiene el valorSCHEMA
oFULL
.
- Actualizar campos de partición:
- En el caso de los datos particionados que no siguen el estilo de Hive, la función de descubrimiento de Dataplex Universal Catalog genera automáticamente claves de partición. Por ejemplo, para la ruta de datos
gs://root/2020/12/31
, se generan las claves de particiónp0
,p1
yp2
. Para que las consultas sean más intuitivas, puedes cambiarp0
,p1
yp2
poryear
,month
yday
, respectivamente. - Si actualizas el estilo de partición a Estilo HIVE, el campo de partición no se puede modificar.
- En el caso de los datos particionados que no siguen el estilo de Hive, la función de descubrimiento de Dataplex Universal Catalog genera automáticamente claves de partición. Por ejemplo, para la ruta de datos
- Actualizar otros campos de metadatos: puede actualizar los campos mimeType, CompressionFormat, CsvOptions y JsonOptions generados automáticamente para facilitar la detección del catálogo universal de Dataplex. El descubrimiento de Dataplex Universal Catalog usará los nuevos valores en su próxima ejecución.
Crear entidad
Usa la API entities.create
para crear entidades de metadatos de tablas o conjuntos de archivos.
Rellena los campos obligatorios y los opcionales pertinentes, o deja que el servicio de descubrimiento de Universal Catalog de Dataplex rellene los campos opcionales.
Eliminar entidad
- Indica el campo etag. Para obtener el etag, primero debes enviar una solicitud entities.get, que devuelve el
etag
de la entidad en la respuesta.
Si se eliminan los datos subyacentes de una tabla o un conjunto de archivos de una zona sin procesar, los metadatos de la tabla o del conjunto de archivos se eliminarán automáticamente en el siguiente análisis de detección. Si se eliminan los datos subyacentes de una tabla de una zona curada, los metadatos de la tabla no se eliminan, sino que se informa de una acción de datos que falta. Para solucionar este problema, elimina explícitamente la entidad de metadatos de la tabla a través de la API Metadata.
Particiones
Mostrar particiones
Para limitar la lista de particiones devueltas por el servicio, añade parámetros de consulta filter a la URL de la solicitud list partitions
.
Ejemplos:
?filter="Country=US AND State=CA AND City=Sunnyvale"
?filter="year < 2000 AND month > 12 AND Date > 10"
Obtener partición
Para obtener una partición, debe completar la URL de la solicitud añadiendo los valores de la clave de partición al final de la URL, con el formato partitions/value1/value2/…./value10
.
Por ejemplo, si una partición tiene valores, {Country=US, State=CA, City=Sunnyvale}
, la URL de la solicitud GET debe terminar con /partitions/US/CA/Sunnyvale
.
Importante: Los valores de URL añadidos deben estar codificados dos veces. Por ejemplo, url_encode(url_encode(value))
se puede usar para codificar "US:CA/CA#Sunnyvale" de forma que la URL de la solicitud termine con /partitions/US%253ACA/CA%2523Sunnyvale
. El campo "name" de la respuesta conserva el formato codificado.
Crear partición
Para crear una partición personalizada para tu fuente de datos, usa la API partitions.create
. Especifica el campo ubicación obligatorio con una ruta de Cloud Storage.
Eliminar partición
Completa la URL de la solicitud añadiendo los valores de la clave de partición al final de la URL de la solicitud, con el formato partitions/value1/value2/…./value10
.
Por ejemplo, si una partición tiene valores, {Country=US, State=CA, City=Sunnyvale}
, la URL de la solicitud debe terminar con /partitions/US/CA/Sunnyvale
.
Importante: Los valores de URL añadidos deben cumplir el estándar RFC-1034 o deben codificarse dos veces. Por ejemplo, US:/CA#/Sunnyvale
se convierte en US%3A/CA%3A/Sunnyvale
.
Siguientes pasos
- Consulta más información sobre cómo acceder a los metadatos en Apache Spark.