Erstellen abgeleiteter Datensätze mit SQL

Erfahren Sie, wie Sie mit SQL-Abfragen Daten aus vorhandenen Datensätzen bearbeiten und transformieren können, um einen abgeleiteten Datensatz zu erstellen, der für Profile aktiviert ist. Dieser Workflow bietet eine effiziente, alternative Methode zum Erstellen abgeleiteter Datensätze für Ihre geschäftlichen Anwendungsfälle des Echtzeit-Kundenprofils.

In diesem Dokument werden verschiedene praktische SQL-Erweiterungen beschrieben, die einen abgeleiteten Datensatz zur Verwendung mit dem Echtzeit-Kundenprofil generieren. Der Workflow vereinfacht den Prozess, den Sie andernfalls über verschiedene API-Aufrufe oder Interaktionen mit der Platform-Benutzeroberfläche durchführen müssten.

In der Regel würde das Generieren und Veröffentlichen eines abgeleiteten Datensatzes für das Echtzeit-Kundenprofil die folgenden Schritte umfassen:

  • Erstellen Sie einen Identitäts-Namespace, falls noch kein vorhanden ist.
  • Erstellen Sie bei Bedarf den Datentyp, um den abgeleiteten Datensatz zu speichern.
  • Erstellen Sie eine Feldergruppe mit diesem Datentyp, um die abgeleiteten Datensatzinformationen zu speichern.
  • Erstellen oder weisen Sie eine primäre Identitätsspalte mit dem zuvor erstellten Namespace zu.
  • Erstellen Sie ein Schema mit der zuvor erstellten Feldergruppe und dem zuvor erstellten Datentyp.
  • Erstellen Sie mit Ihrem Schema einen neuen Datensatz und aktivieren Sie ihn bei Bedarf für das Profil.
  • Markieren Sie optional einen Datensatz als profilaktiviert.

Nach Abschluss der oben genannten Schritte können Sie den Datensatz ausfüllen. Wenn Sie den Datensatz für Profil aktiviert haben, können Sie auch Segmente erstellen, die auf den neuen Datensatz verweisen, und mit der Erstellung von Einblicken beginnen.

Mit Query Service können Sie alle oben aufgeführten Aktionen mithilfe von SQL-Abfragen durchführen. Dies umfasst bei Bedarf Änderungen an Ihren Datensätzen und Feldergruppen.

Erstellen einer Tabelle mit einer Option, um sie für ein Profil zu aktivieren enable-dataset-for-profile

NOTE
Bei der unten bereitgestellten SQL-Abfrage wird von der Verwendung eines bereits vorhandenen Namespace ausgegangen.

Verwenden Sie eine "Tabelle als Auswahl erstellen"(CTAS)-Abfrage, um einen Datensatz zu erstellen, Datentypen zuzuweisen, eine primäre Identität festzulegen, ein Schema zu erstellen und ihn als profilaktiviert zu markieren. Die folgende SQL-Beispielanweisung erstellt einen Datensatz und stellt ihn für Real-time Customer Data Platform (Real-Time CDP) zur Verfügung. Ihre SQL-Abfrage entspricht dem Format, das im folgenden Beispiel gezeigt wird:

CREATE TABLE <your_table_name> [IF NOT EXISTS] (fieldname <your_data_type> primary identity namespace <your_namespace>, [field_name2 <your_data_type>]) [WITH(LABEL='PROFILE')];

Folgende Datentypen werden unterstützt: boolean, date, datetime, text, float, bigint, integer, map, array sowie structure/row.

Der unten stehende SQl-Codeblock bietet Beispiele zum Definieren von Struktur-/Zeilen-, Zuordnungs- und Array-Datentypen. Zeile eins zeigt die Zeilensyntax. Zeile 2 zeigt die Syntax der Zuordnung und Zeile 3 die Syntax des Arrays.

ROW (Column_name <data_type> [, column name <data_type> ]*)
MAP <data_type, data_type>
ARRAY <data_type>

Alternativ können Datensätze auch über die Platform-Benutzeroberfläche für das Profil aktiviert werden. Weitere Informationen zum Markieren eines Datensatzes als für ein Profil aktiviert finden Sie in der Datensatz für die Dokumentation zum Echtzeit-Kundenprofil aktivieren.

In der folgenden Beispielabfrage wird die Variable decile_table Datensatz wird mit id als primäre Identitätsspalte und hat den Namespace IDFA. Es enthält auch ein Feld namens decile1Month des Zuordnungs-Datentyps. Die erstellte Tabelle (decile_table) für das Profil aktiviert ist.

CREATE TABLE decile_table (id text PRIMARY KEY NAMESPACE 'IDFA',
            decile1Month map<text, integer>) WITH (label='PROFILE');

Bei erfolgreicher Ausführung der Abfrage wird die Datensatz-ID an die Konsole zurückgegeben, wie im Beispiel unten dargestellt.

Created Table DataSet Id
>
637fd84969ba291e62dba79f
(1 row)

Verwendung label='PROFILE' auf CREATE TABLE -Befehl, um einen profilaktivierten Datensatz zu erstellen. Die upsert -Funktion ist standardmäßig aktiviert. Die upsert -Funktion kann mithilfe der ALTER -Befehl, wie im folgenden Beispiel gezeigt.

ALTER TABLE <your_table_name> DROP label upsert;

Weitere Informationen zur Verwendung der ALTERSTABELLE Befehl und Beschriftung im Rahmen einer CTAS-Abfrage.

Konstrukte, die bei der Verwaltung von abgeleiteten Datensätzen über SQL helfen

Die unten beschriebenen Funktionen sind bei der Verwaltung von abgeleiteten Datensätzen über SQL von großem Vorteil.

Vorhandene Datensätze ändern, damit sie für das Profil aktiviert werden enable-existing-dataset-for-profile

Das SQL-Konstrukt ALTER TABLE kann verwendet werden, um vorhandene Datensätze für das Profil zu aktivieren. Dazu muss ein profilaktiviertes Tag sowohl zum Schema als auch zum entsprechenden Datensatz hinzugefügt werden.

ALTER TABLE your_decile_table ADD label 'PROFILE';
NOTE
Bei erfolgreicher Ausführung der ALTER TABLE -Befehl, gibt die Konsole ALTER SUCCESS.

Primäre Identität zu einem vorhandenen Datensatz hinzufügen add-primary-identity

Markieren Sie eine vorhandene Spalte in einem Datensatz als primären Identitätssatz. Andernfalls tritt ein Fehler auf. Um eine primäre Identität mithilfe von SQL festzulegen, verwenden Sie das unten dargestellte Abfrageformat.

ALTER TABLE <your_table_name> ADD CONSTRAINT primary identity NAMESPACE

Beispiel:

ALTER TABLE test1_dataset ADD CONSTRAINT PRIMARY KEY(id2) NAMESPACE 'IDFA';

In dem bereitgestellten Beispiel id2 ist eine vorhandene Spalte in test1_dataset.

Datensatz für Profil deaktivieren disable-dataset-for-profile

Wenn Sie Ihre Tabelle für Profilzwecke deaktivieren möchten, müssen Sie den DROP-Befehl verwenden. Beispiel für eine SQL-Anweisung, die DROP wird unten angezeigt.

ALTER TABLE table_name DROP LABEL 'PROFILE';

Beispiel:

ALTER TABLE decile_table DROP label 'PROFILE';

Diese SQL-Anweisung bietet eine effiziente alternative Methode zur Verwendung eines API-Aufrufs. Weitere Informationen finden Sie in der Dokumentation zu Datensatz für die Verwendung mit Real-Time CDP mithilfe der Datensatz-API deaktivieren.

Zulassen der Aktualisierung und des Einfügens von Funktionen für Ihren Datensatz enable-upsert-functionality-for-dataset

Mit dem UPSERT-Befehl können Sie einen neuen Datensatz einfügen oder vorhandene Daten in eine Tabelle aktualisieren. Insbesondere können Sie eine vorhandene Zeile aktualisieren, wenn ein angegebener Wert bereits in einer Tabelle vorhanden ist, oder eine neue Zeile einfügen, wenn der angegebene Wert noch nicht vorhanden ist.

Unten finden Sie eine Beispielanweisung, die das richtige Format verwendet.

ALTER TABLE table_name ADD LABEL 'UPSERT';

Beispiel:

ALTER TABLE table_with_a_decile ADD label 'UPSERT';

Diese SQL-Anweisung bietet eine effiziente alternative Methode zur Verwendung eines API-Aufrufs. Weitere Informationen finden Sie in der Dokumentation zu Datensatz zur Verwendung mit Real-Time CDP und UPSERT mithilfe der Datensatz-API aktivieren.

Deaktivieren Sie die Aktualisierungs- und Einfügefunktionen für Ihren Datensatz. disable-upsert-functionality-for-dataset

Dieser Befehl deaktiviert die Möglichkeit, Zeilen zu aktualisieren und in Ihren Datensatz einzufügen.

Unten finden Sie eine Beispielanweisung, die das richtige Format verwendet.

ALTER TABLE table_name DROP LABEL 'UPSERT';

Beispiel:

ALTER TABLE table_with_a_decile DROP label 'UPSERT';

Zusätzliche Tabelleninformationen für jede Tabelle anzeigen show-labels-for-tables

Zusätzliche Metadaten werden für profilaktivierte Datensätze beibehalten. Verwenden Sie die SHOW TABLES -Befehl zum Anzeigen eines zusätzlichen labels -Spalte, die Informationen zu allen mit Tabellen verknüpften Bezeichnungen enthält.

Nachfolgend finden Sie ein Beispiel für die Ausgabe dieses Befehls:

       name          |        dataSetId         |     dataSet    | description | labels
---------------------+--------------------------+----------------+-------------+----------
 luma_midvalues      | 5bac030c29bb8d12fa992e58 | Luma midValues |             | false
 luma_postvalues     | 5c86b896b3c162151785b43c | Luma midValues |             | false
 table_with_a_decile | 5c86b896b3c162151785b43c | Luma midValues |             | 'UPSERT', 'PROFILE'
(3 rows)

Aus dem Beispiel ergibt sich Folgendes: table_with_a_decile wurde für das Profil aktiviert und mit Bezeichnungen wie "UPSERT", 'PROFILE' wie zuvor beschrieben.

Erstellen einer Feldergruppe mit SQL

Feldergruppen können jetzt mithilfe von SQL erstellt werden. Dies bietet eine Alternative zur Verwendung des Schema-Editors in der Platform-Benutzeroberfläche oder zum Ausführen eines API-Aufrufs für die Schemaregistrierung.

Unten finden Sie eine Beispielanweisung zum Erstellen einer Feldergruppe.

CREATE FIELDGROUP <field_group_name> [IF NOT EXISTS]  (field_name <data_type> primary identity namespace <namespace>, [field_name_2 >data_type>]) [ WITH(LABEL='PROFILE') ];
IMPORTANT
Die Feldergruppenerstellung über SQL schlägt fehl, wenn die label -Markierung wird nicht in der -Anweisung angegeben oder wenn die Feldergruppe bereits existiert.
Stellen Sie sicher, dass die Abfrage eine IF NOT EXISTS -Klausel, um zu vermeiden, dass die Abfrage fehlschlägt, da die Feldergruppe bereits existiert.

Ein Beispiel für die reale Welt könnte in etwa dem unten gezeigten ähneln.

CREATE FIELDGROUP field_group_for_test123 (decile1Month map<text, integer>, decile3Month map<text, integer>, decile6Month map<text, integer>, decile9Month map<text, integer>, decile12Month map<text, integer>, decilelietime map<text, integer>) WITH (LABEL-'PROFILE');

Bei erfolgreicher Ausführung dieser Anweisung wird die erstellte Feldergruppen-ID zurückgegeben. Beispiel c731a1eafdfdecae1683c6dca197c66ed2c2b49ecd3a9525.

Weitere Informationen finden Sie in der Dokumentation eine neue Feldergruppe im Schema Editor erstellen oder unter Verwendung der Schema Registry-API für weitere Informationen über alternative Methoden.

Eine Feldergruppe ablegen

Gelegentlich kann es erforderlich sein, eine Feldergruppe aus der Schema Registry zu entfernen. Dies geschieht durch Ausführen der DROP FIELDGROUP mit der Feldergruppen-ID.

DROP FIELDGROUP [IF EXISTS] <your_field_group_id>;

Beispiel:

DROP FIELDGROUP field_group_for_test123;
IMPORTANT
Das Löschen einer Feldergruppe über SQL schlägt fehl, wenn die Feldergruppe nicht vorhanden ist. Stellen Sie sicher, dass die Anweisung eine IF EXISTS -Klausel, um das Fehlschlagen der Abfrage zu vermeiden.

Alle Feldgruppennamen und -IDs für Ihre Tabellen anzeigen

Die SHOW FIELDGROUPS gibt eine Tabelle zurück, die den Namen, die fieldgroupId und den Eigentümer der Tabellen enthält.

Nachfolgend finden Sie ein Beispiel für die Ausgabe dieses Befehls:

       name                      |        fieldgroupId                             |     owner      |
---------------------------------+-------------------------------------------------+-----------------
 AEP Mobile Lifecycle Details    | _experience.aep-mobile-lifecycle-details        | Luma midValues |
 AEP Web SDK ExperienceEvent     | _experience.aep-web-sdk-experienceevent         | Luma midValues |
 AJO Classification Fields       | _experience.journeyOrchestration.classification | Luma midValues |
 AJO Entity Fields               | _experience.customerJourneyManagement.entities  | Luma midValues |
(4 rows)

Nächste Schritte

Nachdem Sie dieses Dokument gelesen haben, können Sie besser verstehen, wie Sie SQL verwenden, um ein Profil zu erstellen und aktivierten Datensatz basierend auf abgeleiteten Datensätzen zu aktualisieren. Sie können diesen Datensatz jetzt mit Batch-Aufnahme-Workflows verwenden, um Ihre Profildaten zu aktualisieren. Um mehr über die Aufnahme von Daten in Adobe Experience Platform zu erfahren, lesen Sie bitte zunächst die Übersicht zur Datenaufnahme.

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb