Ejecuta un trabajo de conciliación de entidades desde la consola de Google Cloud

En esta guía de inicio rápido, se presenta la API de Entity Reconciliation. En esta guía de inicio rápido, usarás la consola de Google Cloud para configurar tu proyecto y autorización deGoogle Cloud , crear archivos de asignación de esquemas y, luego, realizar una solicitud a Enterprise Knowledge Graph para ejecutar un trabajo de conciliación de entidades.


Para seguir la guía paso a paso sobre esta tarea directamente en la consola Google Cloud , haz clic en Guiarme:

GUIARME


Identifica tu fuente de datos

La API de Entity Reconciliation solo admite tablas de BigQuery como entrada. Si tus datos no están almacenados en BigQuery, te recomendamos que los transfieras allí antes de que haya más conectores disponibles. También asegúrate de que la cuenta de servicio o el cliente de OAuth que configuraste tengan acceso de lectura a las tablas que planeas usar y permiso de escritura al conjunto de datos de destino.

Crea un archivo de asignación de esquemas

Para cada una de tus fuentes de datos, debes crear un archivo de asignación de esquema para informar al Enterprise Knowledge Graph cómo ingerir los datos.

Enterprise Knowledge Graph usa un lenguaje de formato simple legible para las personas llamado YARRRML para definir las asignaciones entre el esquema de origen y las ontologías comunes del gráfico de destino, schema.org.

Enterprise Knowledge Graph solo admite asignaciones simples de 1:1.

Se admiten los siguientes tipos de entidades que corresponden a los tipos en schema.org:

Ejemplos de archivos de asignación de esquemas

Organización

prefixes:
  ekg: http://cloud.google.com/ekg/0.0.1#
  schema: https://schema.org/

mappings:
  Organization:
    sources:
      - [example_project:example_dataset.example_table~bigquery]
    s: ekg:company_$(record_id)
    po:
      - [a, schema:Organization]
      - [schema:name, $(company_name_in_source)]
      - [schema:streetAddress, $(street)]
      - [schema:postalCode, $(postal_code)]
      - [schema:addressCountry, $(country)]
      - [schema:addressLocality, $(city)]
      - [schema:addressRegion, $(state)]
      - [ekg:recon.source_name, $(source_system)]
      - [ekg:recon.source_key, $(source_key)]

LocalBusiness

prefixes:
  ekg: http://cloud.google.com/ekg/0.0.1#
  schema: https://schema.org/
mappings:
  LocalBusiness:
    sources:
      - [example_project:example_dataset.example_table~bigquery]
    s: ekg:local_business_$(record_id)
    po:
      - [a, schema:LocalBusiness]
      - [schema:name, $(company_name_in_source)]
      - [schema:streetAddress, $(street)]
      - [schema:postalCode, $(postal_code)]
      - [schema:addressCountry, $(country)]
      - [schema:addressLocality, $(city)]
      - [schema:addressRegion, $(state)]
      - [schema:url, $(url)]
      - [schema:telephone, $(telephone)]
      - [schema:latitude, $(latitude)]
      - [schema:longitude, $(longitude)]
      - [ekg:recon.source_name, $(source_system)]
      - [ekg:recon.source_key, $(source_key)]

Persona

prefixes:
  ekg: http://cloud.google.com/ekg/0.0.1#
  schema: https://schema.org/
mappings:
  Person:
    sources:
      - [example_project:example_dataset.example_table~bigquery]
    s: ekg:person_$(record_id)
    po:
      - [a, schema:Person]
      - [schema:postalCode, $(ZIP)]
      - [schema:birthDate, $(BIRTHDATE)]
      - [schema:name, $(NAME)]
      - [schema:gender, $(GENDER)]
      - [schema:streetAddress, $(ADDRESS)]
      - [ekg:recon.source_name, (Patients)]
      - [ekg:recon.source_key, $(source_key)]

Para la cadena fuente example_project:example_dataset.example_table~bigquery, ~bigquery es la cadena fija que indica que la fuente de datos proviene de BigQuery.

En la lista de predicados (po), ekg:recon.source_name y ekg:recon.source_key son nombres de predicados reservados que usa el sistema y siempre deben mencionarse en el archivo de asignación. Normalmente, el predicado ekg:recon.source_name toma un valor constante para la fuente (en este ejemplo, (Patients)). El predicado ekg:recon.source_key toma la clave única de la tabla de origen (en este ejemplo, $(source_key)), que representa el valor de la variable del ID de la columna de origen.

Si tienes varias tablas o fuentes que se definirán en los archivos de asignación, o bien diferentes archivos de asignación en una misma llamada a la API, debes asegurarte de que el valor del asunto sea único en las diferentes fuentes. Puedes usar el prefijo más la clave de la columna de origen para que sea único. Por ejemplo, si tienes dos tablas de personas con el mismo esquema, puedes asignar diferentes formatos al valor del sujeto (s): ekg:person1_$(record_id) y ekg:person2_$(record_id).

Ejemplo de esquema de tabla

A continuación, se muestra un ejemplo del archivo de asignación:

prefixes:
  ekg: http://cloud.google.com/ekg/0.0.1#
  schema: https://schema.org/
mappings:
  organization:
    sources:
      - [ekg-api-test:demo.organization~bigquery]
    s: ekg:company_$(source_key)
    po:
      - [a, schema:Organization]
      - [schema:name, $(source_name)]
      - [schema:streetAddress, $(street)]
      - [schema:postalCode, $(postal_code)]
      - [schema:addressCountry, $(country)]
      - [schema:addressLocality, $(city)]
      - [schema:addressRegion, $(state)]
      - [ekg:recon.source_name, (org)]
      - [ekg:recon.source_key, $(primary_key)]

En este ejemplo, el esquema de la tabla en sí no contiene el nombre de esta fuente de datos, que suele ser el nombre de la tabla o el nombre de la base de datos. Por lo tanto, usamos una cadena estática "org" sin el signo de dólar $.

Crea un trabajo de conciliación de entidades

Usa la consola de Google Cloud para crear un trabajo de conciliación.

  1. Abre el panel de Enterprise Knowledge Graph.

    Ir al panel de Enterprise Knowledge Graph

  2. Haz clic en Schema Mapping para crear archivos de asignación a partir de nuestra plantilla para cada una de tus fuentes de datos y, luego, guarda el archivo de asignación en Cloud Storage.

    Desde la opción Schema Mapping en la IU

  3. Haz clic en Trabajo y Ejecutar un trabajo para configurar los parámetros del trabajo antes de iniciarlo.

    Tipo de entidad

    Valor Nombre del modelo Descripción
    Organization google_brasil Concilia entidades a nivel de Organization. Por ejemplo, el nombre de una empresa como una corporación. Esto es diferente de LocalBusiness, que se enfoca en una sucursal, un punto de interés o una presencia física en particular, por ejemplo, uno de los muchos campus de una empresa.
    LocalBusiness google_cyprus Concilia la entidad en función de una sucursal, un punto de interés o una presencia física en particular. También podría tomar coordenadas geográficas como entrada del modelo.
    Person google_atlantis Concilia la entidad de persona en función de un conjunto de atributos predefinidos en schema.org.

    Fuentes de datos

    Solo se admiten las tablas de BigQuery.

    Destino

    La ruta de acceso de salida debe ser un conjunto de datos de BigQuery en el que Enterprise Knowledge Graph tenga permiso para escribir.

    Para cada trabajo ejecutado, Enterprise Knowledge Graph crea una nueva tabla de BigQuery con una marca de tiempo para almacenar los resultados.

    Si usas la API de Entity Reconciliation, la respuesta del trabajo contiene el nombre y la ubicación completos de la tabla de salida.

  4. Si es necesario, configura las Opciones avanzadas.

  5. Para iniciar el trabajo, haz clic en Listo.

Supervisa el estado del trabajo

Puedes supervisar el estado del trabajo desde la consola de Google Cloud y la API. El trabajo puede tardar hasta 24 horas en completarse, según la cantidad de registros que haya en tus conjuntos de datos. Haz clic en cada trabajo individual para ver su configuración detallada.

IU del historial de trabajos

También puedes inspeccionar el estado del trabajo para ver en qué paso se encuentra.

Estado de visualización del trabajo Estado del código Descripción
En ejecución JOB_STATE_RUNNING El trabajo está en ejecución.
Extracción de conocimiento JOB_STATE_KNOWLEDGE_EXTRACTION Enterprise Knowledge Graph extrae datos de BigQuery y crea funciones.
Procesamiento previo de conciliación JOB_STATE_RECON_PREPROCESSING El trabajo se encuentra en el paso de procesamiento previo de la conciliación.
Agrupamiento en clústeres JOB_STATE_CLUSTERING El trabajo está en el paso de agrupamiento.
Exportando clústeres JOB_STATE_EXPORTING_CLUSTERS El trabajo está escribiendo el resultado en el conjunto de datos de destino de BigQuery.

El tiempo de ejecución de cada trabajo varía según muchos factores, como la complejidad de los datos, el tamaño del conjunto de datos y la cantidad de otros trabajos paralelos que se ejecutan al mismo tiempo. Aquí tienes una estimación aproximada del tiempo de ejecución del trabajo en comparación con el tamaño del conjunto de datos como referencia. El tiempo real de finalización del trabajo será diferente.

Cantidad total de registros Tiempo de ejecución
100,000 ~2 horas
100 millones Aprox. 16 horas
300 millones Aprox. 24 horas

Cancela un trabajo de conciliación

Puedes cancel un trabajo en ejecución desde la Google Cloud consola (en la página de detalles del trabajo) y la API. Enterprise Knowledge Graph detiene el trabajo lo antes posible con el mayor esfuerzo posible. No se garantiza el éxito del comando cancel.

Opciones avanzadas

Configuración Descripción
Tabla de BigQuery del resultado anterior Si especificas una tabla de resultados anterior, el ID del clúster se mantiene estable en diferentes trabajos. Luego, podrías usar el ID del clúster como tu ID permanente.
Agrupamiento en clústeres de afinidad Opción recomendada para la mayoría de los casos. Es una versión paralela del agrupamiento jerárquico aglomerativo y se adapta muy bien a la escala. La cantidad de rondas de agrupamiento en clústeres (iteraciones) se puede especificar en el rango [1, 5]. Cuanto mayor sea el número, más tenderá el algoritmo a fusionar en exceso el clúster.
Agrupamiento de componentes conectados Opción predeterminada. Esta es una opción alternativa y heredada. Úsala solo si el agrupamiento por afinidad no funciona bien en tu conjunto de datos. El umbral de peso puede ser un número en el rango [0.6, 1].
Separación de geocodificación Esta opción garantiza que las entidades de diferentes regiones geográficas no se agrupen.