Recopilación de archivos de Object Storage como entidades de datos lógicas

Normalmente, el lago de datos tiene muchos archivos que representan un único juego de datos. Las convenciones de denominación de archivos indican que varios archivos forman parte de una única entidad de datos lógica.

Puede agrupar varios archivos de Object Storage en entidades de datos lógicas en Data Catalog mediante patrones de nombre de archivo. Una entidad de datos lógica es como cualquier otra entidad de datos y se puede utilizar para la búsqueda y la detección. Mediante entidades de datos lógicas, puede organizar el contenido del lago de datos de forma significativa y evitar la explosión de atributos y entidades de datos en el catálogo de datos.

Tareas que normalmente realiza al recoger archivos de Object Storage como entidades de datos lógicas:

  1. Crear un patrón.
  2. Asignar el patrón a un activo de datos de Object Storage.
  3. Recoger el activo de datos.
  4. Ver las entidades de datos lógicas recogidas.

Entidades de datos lógicas

Imagine que tiene el siguiente juego de archivos:

myserv/20191205_yny_myIOTSensor.json
myserv/20191105_yny_myIOTSensor.json
myserv/20191005_yny_myIOTSensor.json
myserv/20190905_yny_myIOTSensor.json
myserv/20191005_hyd_my2ndIOTSensor.json
myserv/20190905_hyd_my2ndIOTSensor.json
myserv/20191005_bom_my3rdIOTSensor.json
myserv/20190905_bom_my3rdIOTSensor.json
myserv/somerandomfile_2019AUG05.json

Si recoge estos archivos en el origen de datos de Oracle Object Storage sin crear patrones de nombre de archivo, Data Catalog crea nueve entidades de datos individuales en el catálogo de datos. Imagine esta situación con cientos de archivos en el origen de datos: se crearían cientos de entidades de datos en el catálogo de datos.

Mediante patrones de nombre de archivo, puede agrupar el juego de archivos de ejemplo en entidades de datos lógicas. Los archivos que no coinciden se crean como entidades de datos de tipo de archivo independientes.
myserv/20191205_yny_myIOTSensor.json
myserv/20191105_yny_myIOTSensor.json
myserv/20191005_yny_myIOTSensor.json
myserv/20190905_yny_myIOTSensor.json
myserv/20191005_hyd_my2ndIOTSensor.json
myserv/20190905_hyd_my2ndIOTSensor.json
myserv/20191005_bom_my3rdIOTSensor.json
myserv/20190905_bom_my3rdIOTSensor.json
myserv/somerandomfile_2019AUG05.json

Expresiones

En Data Catalog, un patrón de nombre de archivo se define mediante expresiones.

Una expresión puede tener uno o más componentes separados mediante un delimitador. Cada componente especifica una regla coincidente para el patrón. Los patrones de nombre de archivo se crean mediante expresiones regulares Java. Especifique la expresión regular que se debe utilizar para agrupar los archivos en las entidades de datos lógicas necesarias.

Puede especificar los calificadores que se utilizan al analizar la expresión. Puede utilizar los siguientes calificadores:

  • bucketName: utilice este calificador para especificar que el nombre del cubo se debe derivar de la ruta que coincide con la expresión indicada. El calificador bucketName solo se utiliza una vez en la expresión y siempre como primer componente de la expresión. El valor del calificador bucketName puede ser un texto estático o una expresión.
  • logicalEntity: utilice este calificador para especificar que el nombre de la entidad de datos lógicas se debe derivar de la ruta que coincide con la expresión indicada. Puede utilizar logicalEntity varias veces en una expresión. Los valores del calificador logicalEntity pueden ser texto estático o expresiones.
Ejemplos de entidades de datos lógicas

Imagine que tiene los siguientes nombres de archivo:

bling_metering/1970120520_yny_hourly_region_res_delayed.json
bling_metering/1973110523_yny_hourly_region_res_delayed.json
bling_metering/1988101605_hyd_daily_region_res_delayed.json
bling_metering/1991042302_yny_hourly_region_res_delayed.json
bling_metering/2019073019_zrh_daily_region_res_delayed.json
bling_metering/2019073020_zrh_monthly_region_res_delayed.json
bling_metering/some_random_file_123.json
Expresión con un calificador logicalEntity

Para derivar entidades de datos lógicas basadas en la frecuencia (hourly, daily, monthly) mencionada en el nombre de archivo, puede utilizar la siguiente expresión de patrón:

{bucketName:bling_metering}/[0-9]*_[a-z]*_{logicalEntity:[a-z]*}_.*.json

Esta expresión utiliza los calificadores bucketName y logicalEntity. En este ejemplo, [0-9]* coincide con cualquier número; [a-z]* coincide con cualquier letra minúscula; y.* coincide con cualquier carácter. El resultado de la expresión son las siguientes entidades de datos lógicas:

  1. bling_metering_monthly
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
  2. bling_metering_hourly
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json
  3. bling_metering_daily
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
    bling_metering/2019073019_zrh_daily_region_res_delayed.json

No coincidente

bling_metering/some_random_file_123.json

Para derivar entidades de datos lógicas basadas en las regiones (yny, hyd, zrh) mencionadas en el nombre de archivo, puede utilizar una de las dos siguientes expresiones de patrón:

{bucketName:bling_metering}/[0-9]*_{logicalEntity:yny|hyd|zrh}_[a-z]*_region_res_delayed.json
{bucketName:bling_metering}/[0-9]*_{logicalEntity:[a-z]*}_[a-z]*_.*.json

El resultado de esta expresión son las siguientes entidades de datos lógicas:

  1. bling_metering_zrh
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
    bling_metering/2019073019_zrh_daily_region_res_delayed.json
  2. bling_metering_yny
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json
  3. bling_metering_hyd
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
    

No coincidente

bling_metering/some_random_file_123.json
Expresión con varios calificadores logicalEntity

Para derivar entidades de datos lógicas basadas en las regiones y la frecuencia (hourly, daily, monthly) mencionadas en el nombre de archivo, puede utilizar la siguiente expresión de patrón:

{bucketName:bling_metering}/[0-9]*_{logicalEntity:[a-z]*}_{logicalEntity:[a-z]*}_region_res_delayed.json

La expresión anterior utiliza un calificador bucketName y dos calificadores logicalEntity. El resultado de la expresión son las siguientes entidades de datos lógicas:

  1. bling_metering_zrh_monthly
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
  2. bling_metering_hyd_daily
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
  3. bling_metering_zrh_daily
    bling_metering/2019073019_zrh_daily_region_res_delayed.json
  4. bling_metering_yny_hourly
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json

No coincidente

bling_metering/some_random_file_123.json
Expresión sin calificador logicalEntity

Si no se especifica ningún calificador logicalEntity, se utiliza el nombre del patrón de nombre de archivo como nombre de la entidad de datos lógica. Por ejemplo, imagine que existe la siguiente expresión para el patrón de nombre de archivo bling pattern:

{bucketName:bling_metering}/[0-9]*_[a-z]*_[a-z]*_.*.json

La expresión anterior utiliza el calificador bucketName, pero no utiliza ningún calificador logicalEntity. El resultado de la expresión son las siguientes entidades de datos lógicas:

  1. bling pattern
    bling_metering/2019073020_zrh_monthly_region_res_delayed.json
    bling_metering/1970120520_yny_hourly_region_res_delayed.json
    bling_metering/1973110523_yny_hourly_region_res_delayed.json
    bling_metering/1991042302_yny_hourly_region_res_delayed.json
    bling_metering/1988101605_hyd_daily_region_res_delayed.json
    bling_metering/2019073019_zrh_daily_region_res_delayed.json

No coincidente

bling_metering/some_random_file_123.json
Nota

Al probar esta expresión sin calificador logicalEntity, en la entidad de datos lógica resultante, la expresión se muestra como el nombre de la entidad lógica. Sin embargo, en un trabajo de recogida, el nombre del patrón de nombre de archivo se utiliza como nombre de la entidad de datos lógica.