Entitätsabgleichjob über die Google Cloud Console ausführen

In dieser Kurzanleitung wird die Entity Reconciliation API vorgestellt. In dieser Kurzanleitung richten Sie mit der Google Cloud ConsoleGoogle Cloud Ihr Projekt und Ihre Autorisierung ein, erstellen Schemazuordnungsdateien und senden dann eine Anfrage an Enterprise Knowledge Graph, um einen Abgleichsjob für Entitäten auszuführen.


Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:

Anleitung


Datenquelle identifizieren

Die Entity Reconciliation API unterstützt nur BigQuery-Tabellen als Eingabe. Wenn Ihre Daten nicht in BigQuery gespeichert sind, empfehlen wir Ihnen, sie dorthin zu übertragen, bevor weitere Connectors verfügbar werden. Achten Sie außerdem darauf, dass das von Ihnen konfigurierte Dienstkonto oder der OAuth-Client Lesezugriff auf die Tabellen hat, die Sie verwenden möchten, und Schreibberechtigungen für das Zieldataset.

Schemazuordnungsdatei erstellen

Für jede Ihrer Datenquellen müssen Sie eine Schemazuordnungsdatei erstellen, um Enterprise Knowledge Graph mitzuteilen, wie die Daten aufgenommen werden sollen.

Enterprise Knowledge Graph verwendet eine für Menschen lesbare einfache Formatierungssprache namens YARRRML, um die Zuordnungen zwischen Quellschema und gemeinsamen Ziel-Graph-Ontologien, schema.org, zu definieren.

Enterprise Knowledge Graph unterstützt nur einfache 1:1-Zuweisungen.

Die folgenden Entitätstypen, die Typen in schema.org entsprechen, werden unterstützt:

Beispielhafte Schemazuordnungsdateien

Organisation

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)]

Person

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)]

Für den Quellstring example_project:example_dataset.example_table~bigquery ist ~bigquery der feste String, der angibt, dass die Datenquelle aus BigQuery stammt.

In der Prädikatliste (po) sind ekg:recon.source_name und ekg:recon.source_key reservierte Prädikatnamen, die vom System verwendet werden und immer in der Zuordnungsdatei angegeben werden müssen. Normalerweise hat das Prädikat ekg:recon.source_name einen konstanten Wert für die Quelle (in diesem Beispiel (Patients)). Das Prädikat ekg:recon.source_key verwendet den eindeutigen Schlüssel aus der Quelltabelle (in diesem Beispiel $(source_key)), der den Variablenwert aus der Quellspalten-ID darstellt.

Wenn Sie mehrere Tabellen oder Quellen in den Zuordnungsdateien oder verschiedene Zuordnungsdateien in einem API-Aufruf definieren möchten, muss der Wert für „subject“ für die verschiedenen Quellen eindeutig sein. Sie können den Präfix- und den Quellspaltenschlüssel verwenden, um die Werte eindeutig zu machen. Wenn Sie beispielsweise zwei Personentabellen mit demselben Schema haben, können Sie dem Wert des Subjekts (s) verschiedene Formate zuweisen: ekg:person1_$(record_id) und ekg:person2_$(record_id).

Beispiel für ein Tabellenschema

Hier sehen Sie ein Beispiel für die Zuordnungsdatei:

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)]

In diesem Beispiel enthält das Tabellenschema selbst nicht den Namen dieser Datenquelle, der in der Regel der Tabellenname oder der Datenbankname ist. Daher verwenden wir den statischen String „org“ ohne das Dollarzeichen $.

Entitätsabgleichsjob erstellen

Verwenden Sie die Google Cloud Console, um einen Abgleichsjob zu erstellen.

  1. Öffnen Sie das Enterprise Knowledge Graph-Dashboard.

    Zum Enterprise Knowledge Graph-Dashboard wechseln

  2. Klicken Sie auf Schemazuordnung, um für jede Ihrer Datenquellen Zuordnungsdateien aus unserer Vorlage zu erstellen, und speichern Sie die Zuordnungsdatei dann in Cloud Storage.

    Über die Option „Schemazuordnung“ in der Benutzeroberfläche

  3. Klicken Sie auf Job und Job ausführen, um die Jobparameter zu konfigurieren, bevor Sie den Job starten.

    Entitätstyp

    Wert Modellname Beschreibung
    Organization google_brasil Gleichen Sie Entitäten auf der Ebene Organization ab. Beispiel: Der Name eines Unternehmens als Firma. Das unterscheidet sich von LocalBusiness, bei dem es um eine bestimmte Niederlassung, einen Ort von Interesse oder eine physische Präsenz geht, z. B. einen von vielen Unternehmensstandorten.
    LocalBusiness google_cyprus Gleichen Sie die Identität anhand einer bestimmten Filiale, eines bestimmten Orts von Interesse oder einer bestimmten physischen Präsenz ab. Es könnte auch geografische Koordinaten als Modelleingabe verwenden.
    Person google_atlantis Gleichen Sie die Personenentität anhand einer Reihe vordefinierter Attribute in schema.org ab.

    Datenquellen

    Es werden nur BigQuery-Tabellen unterstützt.

    Ziel

    Der Ausgabepfad muss ein BigQuery-Dataset sein, in das Enterprise Knowledge Graph schreiben darf.

    Für jeden ausgeführten Job wird im Enterprise Knowledge Graph eine neue BigQuery-Tabelle mit Zeitstempel erstellt, in der die Ergebnisse gespeichert werden.

    Wenn Sie die Entity Reconciliation API verwenden, enthält die Jobantwort den vollständigen Namen und Speicherort der Ausgabetabelle.

  4. Konfigurieren Sie bei Bedarf die Erweiterten Optionen.

  5. Klicken Sie auf Fertig, um den Job zu starten.

Jobstatus überwachen

Sie können den Jobstatus sowohl über die Google Cloud Console als auch über die API überwachen. Je nach Anzahl der Datensätze in Ihren Datasets kann es bis zu 24 Stunden dauern, bis der Job abgeschlossen ist. Klicken Sie auf die einzelnen Jobs, um die detaillierte Konfiguration des Jobs aufzurufen.

UI für den Jobverlauf

Sie können auch den Jobstatus prüfen, um zu sehen, wo sich der aktuelle Schritt befindet.

Anzeigestatus des Jobs Codestatus Beschreibung
Wird ausgeführt JOB_STATE_RUNNING Der Job wird bearbeitet.
Wissensextraktion JOB_STATE_KNOWLEDGE_EXTRACTION Der Enterprise Knowledge Graph ruft Daten aus BigQuery ab und erstellt Funktionen.
Abgleichvorverarbeitung JOB_STATE_RECON_PREPROCESSING Der Job befindet sich im Vorverarbeitungsschritt für die Abstimmung.
Clustering JOB_STATE_CLUSTERING Der Job befindet sich im Clustering-Schritt.
Cluster werden exportiert JOB_STATE_EXPORTING_CLUSTERS Der Job schreibt die Ausgabe in das BigQuery-Ziel-Dataset.

Die Laufzeit für die einzelnen Jobs variiert je nach vielen Faktoren, z. B. der Komplexität der Daten, der Größe des Datasets und der Anzahl anderer paralleler Jobs, die gleichzeitig ausgeführt werden. Hier finden Sie eine ungefähre Schätzung der Jobausführungszeit im Vergleich zur Dataset-Größe. Die tatsächliche Zeit bis zur Fertigstellung des Jobs wird abweichen.

Gesamtzahl der Datensätze Ausführungszeit
100.000 ~2 Stunden
100 Mio. ca. 16 Stunden
300 Mio. ca. 24 Stunden

Abstimmungsjob abbrechen

Sie können einen laufenden Job sowohl über die Google Cloud Console (auf der Seite mit den Jobdetails) als auch über die API cancel. Enterprise Knowledge Graph beendet den Job dann so schnell wie möglich. Der Erfolg des Befehls cancel ist nicht garantiert.

Erweiterte Optionen

Konfiguration Beschreibung
Vorherige BigQuery-Ergebnistabelle Wenn Sie eine vorherige Ergebnistabelle angeben, bleibt die Cluster-ID in verschiedenen Jobs stabil. Sie können dann die Cluster-ID als Ihre permanente ID verwenden.
Affinitäts-Clustering Für die meisten Fälle empfohlene Option. Es handelt sich um eine parallele Version des hierarchischen agglomerativen Clusterings, die sich sehr gut skalieren lässt. Die Anzahl der Clustering-Runden (Iterationen) kann im Bereich [1, 5] angegeben werden. Je höher die Zahl, desto eher wird der Cluster vom Algorithmus zu stark zusammengeführt.
Clustering verbundener Komponenten Standardoption. Dies ist eine alternative und Legacy-Option. Verwenden Sie sie nur, wenn Affinity Clustering für Ihren Datensatz nicht gut funktioniert. Der Gewichtungsschwellenwert kann eine Zahl im Bereich [0.6, 1] sein.
Geocoding-Trennung Mit dieser Option wird dafür gesorgt, dass Entitäten aus verschiedenen geografischen Regionen nicht zusammen gruppiert werden.