Query Service Handbuch zur Fehlerbehebung

Dieses Dokument enthält Antworten auf häufig gestellte Fragen zu Query Service und eine Liste der häufig verwendeten Fehlercodes bei Verwendung von Query Service. Fragen und Antworten zur Fehlerbehebung bei anderen Diensten in Adobe Experience Platform finden Sie im Abschnitt Handbuch zur Fehlerbehebung bei Experience Platformen.

Die folgende Liste von Antworten auf häufig gestellte Fragen ist in folgende Kategorien unterteilt:

Allgemeine Fragen zu Query Service

Dieser Abschnitt enthält Informationen zu Leistung, Beschränkungen und Prozessen.

Kann ich die Funktion zur automatischen Vervollständigung im Abfragedienst-Editor deaktivieren?

+++Antwort Nr. Das Deaktivieren der Funktion zur automatischen Vervollständigung wird derzeit vom Editor nicht unterstützt.
+++

Warum wird der Abfrage-Editor manchmal langsam, wenn ich eine Abfrage eingebe?

+++Antwort Eine potenzielle Ursache ist die Funktion zur automatischen Vervollständigung. Die Funktion verarbeitet bestimmte Metadatenbefehle, die den Editor gelegentlich bei der Abfragebearbeitung verlangsamen können.
+++

Kann ich Postman für die Query Service-API verwenden?

++ + Antwort Ja: Sie können alle Adobe API-Dienste mithilfe von Postman (einer kostenlosen Drittanbieteranwendung) visualisieren und damit interagieren. Beobachten Sie die Postman-Setup-Handbuch für schrittweise Anweisungen zum Einrichten eines Projekts in der Adobe Developer Console und zum Abrufen aller erforderlichen Anmeldeinformationen für die Verwendung mit Postman. Die offizielle Dokumentation finden Sie unter Anleitung zum Starten, Ausführen und Freigeben von Postman-Sammlungen.
+++

Gibt es eine Begrenzung für die maximale Anzahl von Zeilen, die von einer Abfrage über die Benutzeroberfläche zurückgegeben werden?

++ + Antwort Ja, Query Service wendet intern eine Beschränkung von 50.000 Zeilen an, es sei denn, extern wird eine explizite Begrenzung angegeben. Siehe die Leitlinien zu interaktive Abfrageausführung für weitere Details.
+++

Gibt es eine Größenbeschränkung für die resultierende Ausgabe aus einer Abfrage?

+++Antwort Nr. Die Datengröße ist nicht begrenzt, aber eine interaktive Sitzung hat eine Zeitüberschreitung der Abfrage von 10 Minuten. Wenn die Abfrage als Batch-CTAS ausgeführt wird, gilt kein 10-minütiges Timeout. Siehe die Leitlinien zu interaktive Abfrageausführung für weitere Details.
+++

Wie umgehe ich die Begrenzung der Ausgabenanzahl von Zeilen aus einer SELECT-Abfrage?

 Antwort Wenden Sie "LIMIT 0"in der Abfrage an, um die Beschränkung für die Ausgabezeilen zu umgehen. Beispiel:
SELECT * FROM customers LIMIT 0;

Wie kann ich verhindern, dass meine Abfragen in 10 Minuten ablaufen?

 Antwort Eine oder mehrere der folgenden Lösungen werden empfohlen, wenn bei Abfragen eine Zeitüberschreitung auftritt.

Gibt es Probleme oder Auswirkungen auf die Leistung von Query Service, wenn mehrere Abfragen gleichzeitig ausgeführt werden?

+++Antwort Nr. Query Service verfügt über eine Funktion zur automatischen Skalierung, die sicherstellt, dass gleichzeitige Abfragen keine merklichen Auswirkungen auf die Leistung des Dienstes haben.
+++

Wie finde ich einen Spaltennamen aus einem hierarchischen Datensatz?

 Antwort Die folgenden Schritte beschreiben, wie Sie eine tabellarische Ansicht eines Datensatzes über die Benutzeroberfläche anzeigen, einschließlich aller verschachtelten Felder und Spalten in einem reduzierten Formular.
  • Wählen Sie nach der Anmeldung bei Experience Platform die Option Datensätze im linken Navigationsbereich der Benutzeroberfläche, um zu navigieren Datensätze Dashboard.
  • Die Datensätze Durchsuchen -Registerkarte geöffnet. Sie können die Suchleiste verwenden, um die verfügbaren Optionen zu verfeinern. Wählen Sie einen Datensatz aus der angezeigten Liste aus.

Das Dashboard "Datensätze"in der Platform-Benutzeroberfläche mit hervorgehobener Suchleiste und Datensatz.

  • Die Datensatzaktivität angezeigt. Auswählen Vorschau des Datensatzes anzeigen , um ein Dialogfeld des XDM-Schemas und eine tabellarische Ansicht von reduzierten Daten aus dem ausgewählten Datensatz zu öffnen. Weitere Informationen finden Sie im Vorschau einer Datensatzdokumentation anzeigen

Die Registerkarte Datensatzaktivität im Dashboard "Datensätze"mit hervorgehobener Vorschau des Datensatzes.

  • Wählen Sie ein beliebiges Feld aus dem Schema aus, um seinen Inhalt in einer reduzierten Spalte anzuzeigen. Der Name der Spalte wird oberhalb ihres Inhalts auf der rechten Seite angezeigt. Sie sollten diesen Namen kopieren, um diesen Datensatz abzufragen.

Das XDM-Schema und die Tabellenansicht der reduzierten Daten. Der Spaltenname eines verschachtelten Datensatzes wird in der Benutzeroberfläche hervorgehoben.

Die vollständige Anleitung finden Sie in der Dokumentation zu Arbeiten mit verschachtelten Datenstrukturen mit dem Abfrage-Editor oder einem Client eines Drittanbieters.

Wie beschleunige ich eine Abfrage für einen Datensatz, der Arrays enthält?

+++Antwort Um die Leistung von Abfragen für Datensätze zu verbessern, die Arrays enthalten, sollten Sie explodieren as a CTAS-Abfrage auf Laufzeitumgebung, und untersuchen Sie sie dann, um weitere Möglichkeiten zur Verbesserung der Verarbeitungszeit zu erhalten.
+++

Warum wird meine CTAS-Abfrage nach vielen Stunden nur für eine kleine Anzahl von Zeilen verarbeitet?

 Antwort Wenn die Abfrage für einen sehr kleinen Datensatz lange gedauert hat, wenden Sie sich an den Support.

Es kann verschiedene Gründe dafür geben, dass eine Abfrage bei der Verarbeitung hängenbleibt. Um die genaue Ursache zu ermitteln, muss von Fall zu Fall eingehend analysiert werden. Support für Adobe kontaktieren zu diesem Prozess gehören.

Wie kontaktiere ich den Adobe-Support?

 Antwort

Eine vollständige Liste der Telefonnummern des Adobe-Kundendienstes ist auf der Hilfeseite zur Adobe verfügbar. Alternativ können Sie Hilfe online finden, indem Sie die folgenden Schritte ausführen:

  • Navigieren Sie zu https://www.adobe.com/ in Ihrem Webbrowser.
  • Wählen Sie rechts in der oberen Navigationsleiste die Option Anmelden.

Die Adobe-Website mit Anmeldung hervorgehoben.

  • Verwenden Sie Ihre Adobe ID und Ihr Kennwort, die mit Ihrer Adobe-Lizenz registriert sind.
  • Auswählen Hilfe und Support über die Navigationsleiste am oberen Bildschirmrand.

Das Dropdown-Menü der oberen Navigationsleiste mit Hilfe und Support, Enterprise-Support und Kontakt wurde hervorgehoben.

Es wird ein Dropdown-Banner mit einem Hilfe und Support Abschnitt. Auswählen Kontakt , um die Adobe Customer Care Virtual Assistant zu öffnen, oder wählen Sie Enterprise-Support für spezielle Hilfe für große Organisationen.

Wie implementiere ich eine sequenzielle Vorgangsreihe, ohne nachfolgende Aufträge auszuführen, wenn der vorherige Auftrag nicht erfolgreich abgeschlossen wurde?

 Antwort Mit der Funktion für anonyme Bausteine können Sie eine oder mehrere SQL-Anweisungen ketten, die nacheinander ausgeführt werden. Sie ermöglichen auch die Möglichkeit der Ausnahmebehandlung.

Siehe Anonyme Blockdokumentation für weitere Details.

Wie implementiere ich eine benutzerdefinierte Attribution in Query Service?

 Antwort Es gibt zwei Möglichkeiten, benutzerdefinierte Attribution zu implementieren:
  1. Verwenden Sie eine Kombination aus vorhandenem Adobe-definierte Funktionen um festzustellen, ob die Anforderungen des Anwendungsfalls erfüllt sind.
  2. Wenn der vorherige Vorschlag Ihren Anwendungsfall nicht erfüllt, sollten Sie eine Kombination aus Fensterfunktionen. Window-Funktionen betrachten alle Ereignisse in einer Sequenz. Sie ermöglichen es Ihnen auch, die historischen Daten zu überprüfen und können in jeder beliebigen Kombination verwendet werden.

Kann ich meine Abfragen als Vorlage verwenden, damit ich sie einfach wiederverwenden kann?

++ + Antwort Ja, Sie können Abfragen mithilfe vorbereiteter Anweisungen als Vorlage verwenden. Vorbereitete Anweisungen können die Leistung optimieren und das wiederholte erneute Parsen einer Abfrage vermeiden. Siehe Vorbereitete Anweisungen - Dokumentation für weitere Details.
+++

Wie erhalte ich Fehlerprotokolle für eine Abfrage?

 Antwort Um Fehlerprotokolle für eine bestimmte Abfrage abzurufen, müssen Sie zunächst die Query Service-API verwenden, um die Details des Abfrageprotokolls abzurufen. Die HTTP-Antwort enthält die Abfrage-IDs, die zur Untersuchung eines Abfragefehlers erforderlich sind.

Verwenden Sie den Befehl GET , um mehrere Abfragen abzurufen. Informationen dazu, wie Sie die API aufrufen, finden Sie im Abschnitt Beispieldokumentation zu API-Aufrufen.

Identifizieren Sie in der Antwort die Abfrage, die Sie untersuchen möchten, und stellen Sie eine weitere GET-Anfrage mithilfe ihrer id -Wert. Vollständige Anweisungen finden Sie im Abfrage nach ID-Dokumentation abrufen.

Eine erfolgreiche Antwort gibt den HTTP-Status 200 zurück und enthält die errors Array. Die Antwort wurde aus Gründen der Kürze gekürzt.

{
    "isInsertInto": false,
    "request": {
                "dbName": "prod:all",
                "sql": "SELECT *\nFROM\n  accounts\nLIMIT 10\n"
            },
    "clientId": "8c2455819a624534bb665c43c3759877",
    "state": "SUCCESS",
    "rowCount": 0,
    "errors": [{
      'code': '58000',
      'message': 'Batch query execution gets : [failed reason ErrorCode: 58000 Batch query execution gets : [Analysis error encountered. Reason: [sessionId: f055dc73-1fbd-4c9c-8645-efa609da0a7b Function [varchar] not defined.]]]',
      'errorType': 'USER_ERROR'
      }],
    "isCTAS": false,
    "version": 1,
    "id": "343388b0-e0dd-4227-a75b-7fc945ef408a",
}

Die Referenzdokumentation zur Query Service API bietet weitere Informationen zu allen verfügbaren Endpunkten.

Was bedeutet "Fehler beim Validieren des Schemas"?

 Antwort Die Meldung "Fehler bei Validierung des Schemas"bedeutet, dass das System ein Feld im Schema nicht finden kann. Sie sollten das Best Practice-Dokument für Organisieren von Daten-Assets in Query Service gefolgt von Erstellen von Tabellen als ausgewählte Dokumentation.

Das folgende Beispiel zeigt die Verwendung einer CTAS-Syntax und eines Strukturdatentyps:

CREATE TABLE table_name WITH (SCHEMA='schema_name')

AS SELECT '1' as _id,

 STRUCT

  ('2021-02-17T15:39:29.0Z' AS taskActualCompletionDate,

    '2020-09-09T21:21:16.0Z' AS taskActualStartDate,

    'Consulting' AS taskdescription,

    '5f6527c10011e09b89666c52d9a8c564' AS taskguide,

    'Stakeholder Consulting Engagement' AS taskname,

    '2020-09-09T15:00:00.0Z' AS taskPlannedStartDate,

    '2021-02-15T11:00:00.0Z' AS taskPlannedCompletionDate

  ) AS _workfront ;

Wie kann ich die neuen Daten, die täglich in das System gelangen, schnell verarbeiten?

++ + Antwort auf die SNAPSHOT -Klausel verwendet werden, um Daten einer Tabelle basierend auf einer Snapshot-ID inkrementell zu lesen. Dies eignet sich ideal für die Verwendung mit dem inkrementelle Auslastung Designmuster, das nur Informationen im Datensatz verarbeitet, die seit der letzten Ausführung des Ladevorgangs erstellt oder geändert wurden. Dadurch wird die Verarbeitungseffizienz erhöht und kann sowohl mit Streaming- als auch mit der Batch-Datenverarbeitung verwendet werden.
+++

Warum unterscheiden sich die in der Profil-Benutzeroberfläche angezeigten Zahlen von den aus dem Profil-Exportdatensatz berechneten Zahlen?

 Antwort Die im Profil-Dashboard angezeigten Zahlen sind ab dem letzten Schnappschuss korrekt. Die in der Tabelle für den Profilexport erzeugten Zahlen hängen vollständig von der Exportabfrage ab. Daher ist die Abfrage der Anzahl der Profile, die für ein bestimmtes Segment qualifiziert sind, häufig eine Ursache für diese Diskrepanz.
HINWEIS

Die Abfrage umfasst historische Daten, während in der Benutzeroberfläche nur die aktuellen Profildaten angezeigt werden.

Warum hat meine Abfrage eine leere Teilmenge zurückgegeben und was soll ich tun?

 Antwort Die wahrscheinlichste Ursache ist, dass Ihre Abfrage im Umfang zu eng ist. Sie sollten systematisch einen Abschnitt der WHERE -Klausel, bis Sie beginnen, einige Daten anzuzeigen.

Sie können auch mithilfe einer kleinen Abfrage bestätigen, dass Ihr Datensatz Daten enthält, z. B.:

SELECT count(1) FROM myTableName

Kann ich meine Daten stichprobenweise überprüfen?

+++Antwort Diese Funktion wird derzeit bearbeitet. Details werden im Versionshinweise und über die Platform-UI-Dialogfelder, sobald die Funktion zur Veröffentlichung bereit ist.
+++

Welche Hilfsfunktionen werden von Query Service unterstützt?

+++ Query Service bietet mehrere integrierte SQL-Hilfsfunktionen zur Erweiterung der SQL-Funktionalität. Eine vollständige Liste der Von Query Service unterstützte SQL-Funktionen.
+++

sind alle nativen Spark SQL Unterstützte Funktionen oder Benutzer, die nur auf den Wrapper beschränkt sind Spark SQL Funktionen der Adobe?

+++Antwort Noch nicht alle Open-Source-Formulare Spark SQL -Funktionen wurden anhand von Daten aus Seeseiden getestet. Nach dem Test und der Bestätigung werden sie der unterstützten Liste hinzugefügt. Lesen Sie hierzu den Abschnitt Liste der unterstützten Spark SQL Funktionen , um nach einer bestimmten Funktion zu suchen.
+++

Können Benutzer ihre eigenen benutzerdefinierten Funktionen (UDF) definieren, die über andere Abfragen hinweg verwendet werden können?

++ + Antwort Aufgrund von Sicherheitsüberlegungen bei der Datensicherheit ist die benutzerdefinierte Definition von UDFs nicht zulässig.
+++

Was sollte ich tun, wenn meine geplante Abfrage fehlschlägt?

 Antwort Zunächst überprüfen Sie die Protokolle, um die Details des Fehlers zu ermitteln. Der Abschnitt "FAQ"zu Fehler in Protokollen suchen enthält weitere Informationen dazu.

Sie sollten auch die Dokumentation lesen, um Anleitungen zur Leistung zu erhalten Geplante Abfragen in der Benutzeroberfläche und die API.

Im Folgenden finden Sie eine Liste von Überlegungen zu geplanten Abfragen bei Verwendung der Query Editor. Sie gelten nicht für die Query Service API:
Sie können einen Zeitplan nur zu einer Abfrage hinzufügen, die bereits erstellt, gespeichert und ausgeführt wurde.
You cannot einen Zeitplan zu einer parametrisierten Abfrage hinzufügen.
Geplante Abfragen cannot einen anonymen Block enthalten.
Sie können one Abfragevorlage, die die Benutzeroberfläche verwendet. Wenn Sie einer Abfragevorlage zusätzliche Zeitpläne hinzufügen möchten, müssen Sie die API verwenden. Wenn ein Zeitplan bereits mithilfe der API hinzugefügt wurde, können Sie keine zusätzlichen Zeitpläne über die Benutzeroberfläche hinzufügen.

Was bedeutet der Fehler "Sitzungsbegrenzung erreicht"?

+++Antwort "Sitzungsbegrenzung erreicht"bedeutet, dass die für Ihr Unternehmen maximal zulässige Anzahl von Query Service-Sitzungen erreicht wurde. Wenden Sie sich an den Adobe Experience Platform-Administrator Ihrer Organisation.
+++

Wie behandelt das Abfrageprotokoll Abfragen, die sich auf einen gelöschten Datensatz beziehen?

+++ Query Service löscht den Abfrageverlauf nie. Das bedeutet, dass alle Abfragen, die auf einen gelöschten Datensatz verweisen, als Ergebnis "Kein gültiger Datensatz"zurückgeben.
+++

Wie erhalte ich nur die Metadaten für eine Abfrage?

 Antwort Sie können eine Abfrage ausführen, die null Zeilen zurückgibt, um nur die Metadaten in der Antwort zu erhalten. Diese Beispielabfrage gibt nur die Metadaten für die angegebene Tabelle zurück.
SELECT * FROM <table> WHERE 1=0

Wie kann ich eine CTAS-Abfrage (Tabelle als Auswahl erstellen) schnell durchlaufen, ohne sie zu materialisieren?

 Antwort Sie können temporäre Tabellen erstellen, um eine Abfrage schnell zu iterieren und zu experimentieren, bevor sie zur Verwendung materialisiert wird. Sie können auch temporäre Tabellen verwenden, um zu überprüfen, ob eine Abfrage funktioniert.

Sie können beispielsweise eine temporäre Tabelle erstellen:

CREATE temp TABLE temp_dataset AS
SELECT *
FROM actual_dataset
WHERE 1 = 0;

Anschließend können Sie die temporäre Tabelle wie folgt verwenden:

INSERT INTO temp_dataset
SELECT a._company AS _company,
a._id AS _id,
a.timestamp AS timestamp
FROM actual_dataset a
WHERE timestamp >= TO_TIMESTAMP('2021-01-21 12:00:00')
AND timestamp < TO_TIMESTAMP('2021-01-21 13:00:00')
LIMIT 100;

Wie ändere ich die Zeitzone von und zu einem UTC-Zeitstempel?

++ + Antwort Adobe Experience Platform behält Daten im UTC-Zeitstempelformat (Coordinated Universal Time) bei. Ein Beispiel für das UTC-Format ist 2021-12-22T19:52:05Z

Query Service unterstützt integrierte SQL-Funktionen zum Konvertieren eines bestimmten Zeitstempels in das und aus dem UTC-Format. Beide to_utc_timestamp() und from_utc_timestamp() -Methoden haben zwei Parameter: Zeitstempel und Zeitzone.

Parameter Beschreibung
Zeitstempel Der Zeitstempel kann entweder im UTC-Format oder einfach geschrieben werden {year-month-day} Format. Wenn keine Zeit angegeben wird, ist der Standardwert Mitternacht am Morgen des angegebenen Tages.
Zeitzone Die Zeitzone wird in einer {continent/city}) Format. Es muss sich um einen der anerkannten Zeitzonen-Codes handeln, die im Public-Domain-TZ-Datenbank.

In den UTC-Zeitstempel konvertieren

Die to_utc_timestamp() -Methode interpretiert die angegebenen Parameter und konvertiert sie zum Zeitstempel Ihrer lokalen Zeitzone im UTC-Format. Beispielsweise ist die Zeitzone in Seoul, Südkorea UTC/GMT +9 Stunden. Durch Angabe eines reinen Datums-Zeitstempels verwendet die Methode den Standardwert Mitternacht am Morgen. Der Zeitstempel und die Zeitzone werden vom Zeitpunkt dieser Region in einen UTC-Zeitstempel Ihrer lokalen Region in das UTC-Format konvertiert.

SELECT to_utc_timestamp('2021-08-31', 'Asia/Seoul');

Die Abfrage gibt einen Zeitstempel in der Ortszeit des Benutzers zurück. In diesem Fall 15 Uhr am Vortag, da Seoul neun Stunden vor uns liegt.

2021-08-30 15:00:00

Ein weiteres Beispiel: Wenn der angegebene Zeitstempel 2021-07-14 12:40:00.0 für Asia/Seoul timezone, würde der zurückgegebene UTC-Zeitstempel 2021-07-14 03:40:00.0

Die in der Benutzeroberfläche von Query Service bereitgestellte Konsolenausgabe ist ein für Menschen lesbareres Format:

8/30/2021, 3:00 PM

Aus UTC-Zeitstempel konvertieren

Die from_utc_timestamp() -Methode interpretiert die angegebenen Parameter aus dem Zeitstempel Ihrer lokalen Zeitzone und stellt den entsprechenden Zeitstempel der gewünschten Region im UTC-Format bereit. Im folgenden Beispiel ist die Stunde 14:40 Uhr in der lokalen Zeitzone des Benutzers. Die Seoul-Zeitzone, die als Variable übergeben wird, liegt neun Stunden vor der lokalen Zeitzone.

SELECT from_utc_timestamp('2021-08-31 14:40:00.0', 'Asia/Seoul');

Die Abfrage gibt einen Zeitstempel im UTC-Format für die Zeitzone zurück, die als Parameter übergeben wird. Das Ergebnis liegt neun Stunden vor der Zeitzone, die die Abfrage ausgeführt hat.

8/31/2021, 11:40 PM

Wie sollte ich meine Zeitreihendaten filtern?

 Antwort Bei Abfragen mit Zeitreihendaten sollten Sie den Zeitstempelfilter verwenden, wann immer dies möglich ist, um eine genauere Analyse zu ermöglichen.
HINWEIS

Die Datums-Zeichenfolge must im Format yyyy-mm-ddTHH24:MM:SS.

Nachfolgend finden Sie ein Beispiel für die Verwendung des Zeitstempelfilters:

SELECT a._company  AS _company,
       a._id       AS _id,
       a.timestamp AS timestamp
FROM   dataset a
WHERE  timestamp >= To_timestamp('2021-01-21 12:00:00')
       AND timestamp < To_timestamp('2021-01-21 13:00:00')

Wie verwende ich die CAST Operator zum Konvertieren meiner Zeitstempel in SQL-Abfragen?

 Antwort Bei Verwendung der CAST zum Konvertieren eines Zeitstempels verwenden, müssen Sie beide das Datum angeben und Zeit.

Wenn beispielsweise die Zeitkomponente fehlt, wie unten dargestellt, wird ein Fehler ausgegeben:

SELECT * FROM ABC
WHERE timestamp = CAST('07-29-2021' AS timestamp)

Die korrekte Verwendung der CAST -Operator finden Sie unten:

SELECT * FROM ABC
WHERE timestamp = CAST('07-29-2021 00:00:00' AS timestamp)

Sollte ich Platzhalter verwenden, z. B. * , um alle Zeilen aus meinen Datensätzen zu erhalten?

+++Antwort Sie können keine Platzhalter verwenden, um alle Daten aus Ihren Zeilen abzurufen, da Query Service als columnar-store anstatt eines herkömmlichen Zeilenspeichersystems.
+++

Sollte ich NOT IN in meiner SQL-Abfrage?

++ + Antwort auf die NOT IN -Operator wird häufig zum Abrufen von Zeilen verwendet, die nicht in einer anderen Tabelle oder SQL-Anweisung gefunden werden. Dieser Operator kann die Leistung verlangsamen und unerwartete Ergebnisse zurückgeben, wenn die verglichenen Spalten akzeptiert werden NOT NULLoder Sie haben eine große Anzahl von Datensätzen.

anstelle von NOT INkönnen Sie entweder NOT EXISTS oder LEFT OUTER JOIN.

Wenn Sie beispielsweise die folgenden Tabellen erstellt haben:

CREATE TABLE T1 (ID INT)
CREATE TABLE T2 (ID INT)
INSERT INTO T1 VALUES (1)
INSERT INTO T1 VALUES (2)
INSERT INTO T1 VALUES (3)
INSERT INTO T2 VALUES (1)
INSERT INTO T2 VALUES (2)

Wenn Sie die NOT EXISTS -Operator verwenden, können Sie die NOT IN -Operator mithilfe der folgenden Abfrage verwenden:

SELECT ID FROM T1
WHERE NOT EXISTS
(SELECT ID FROM T2 WHERE T1.ID = T2.ID)

Wenn Sie die LEFT OUTER JOIN -Operator verwenden, können Sie die NOT IN -Operator mithilfe der folgenden Abfrage verwenden:

SELECT T1.ID FROM T1
LEFT OUTER JOIN T2 ON T1.ID = T2.ID
WHERE T2.ID IS NULL

+++

Kann ich einen Datensatz mit einer CTAS-Abfrage mit einem doppelten Unterstrich erstellen, wie er in der Benutzeroberfläche angezeigt wird? Beispiel: test_table_001.

++ + Antwort Nein, dies ist eine absichtliche Einschränkung in der gesamten Experience Platform, die für alle Adobe-Dienste gilt, einschließlich Query Service. Ein Name mit zwei Unterstrichen ist als Schema- und Datensatzname zulässig, der Tabellenname für den Datensatz darf jedoch nur einen Unterstrich enthalten.
+++

Exportieren von Daten

Dieser Abschnitt enthält Informationen zum Exportieren von Daten und Einschränkungen.

Gibt es eine Möglichkeit, Daten aus Query Service nach der Abfrageverarbeitung zu extrahieren und die Ergebnisse in einer CSV-Datei zu speichern?

 Antwort Ja. Daten können aus Query Service extrahiert werden. Außerdem besteht die Möglichkeit, die Ergebnisse über einen SQL-Befehl im CSV-Format zu speichern.

Es gibt zwei Möglichkeiten, die Ergebnisse einer Abfrage bei der Verwendung eines PSQL-Clients zu speichern. Sie können die COPY TO -Befehl oder erstellen Sie eine -Anweisung im folgenden Format:

SELECT column1, column2
FROM <table_name>
\g <table_name>.out

Leitlinien für die Verwendung der COPY TO command finden Sie in der SQL-Syntaxreferenz-Dokumentation.

Kann ich den Inhalt des endgültigen Datensatzes extrahieren, der über CTAS-Abfragen erfasst wurde (vorausgesetzt, es handelt sich um größere Datenmengen wie Terabytes)?

+++Antwort Nr. Es gibt derzeit keine Funktion für die Extraktion erfasster Daten.
+++

Warum gibt der Analytics-Data Connector keine Daten zurück?

 Antwort Eine häufige Ursache für dieses Problem ist die Abfrage von Zeitreihendaten ohne Zeitfilter. Beispiel:
SELECT * FROM prod_table LIMIT 1;

Sollte wie folgt geschrieben werden:

SELECT * FROM prod_table
WHERE
timestamp >= to_timestamp('2022-07-22')
and timestamp < to_timestamp('2022-07-23');

Drittanbieter-Tools

Dieser Abschnitt enthält Informationen zur Verwendung von Drittanbieter-Tools wie PSQL und Power BI.

Kann ich Query Service mit einem Tool eines Drittanbieters verbinden?

++ + Antwort Ja, Sie können mehrere Desktop-Clients von Drittanbietern mit Query Service verbinden. Weitere Informationen finden Sie in der Dokumentation für Vollständige Details zu den verfügbaren Clients und wie sie mit Query Service verbunden werden.
+++

Gibt es eine Möglichkeit, Query Service einmal für die kontinuierliche Verwendung mit einem Tool eines Drittanbieters zu verbinden?

++ + Antwort Ja, Desktop-Clients von Drittanbietern können über eine einmalige Einrichtung ohne ablaufende Anmeldeinformationen mit Query Service verbunden werden. Nicht ablaufende Anmeldeinformationen können von einem autorisierten Benutzer generiert und in einer JSON-Datei empfangen werden, die automatisch auf den lokalen Computer heruntergeladen wird. Voll Anleitung zum Erstellen und Herunterladen nicht ablaufender Anmeldedaten finden Sie in der Dokumentation.
+++

Warum funktionieren meine nicht ablaufenden Anmeldeinformationen nicht?

 Antwort Der Wert für nicht ablaufende Anmeldeinformationen sind die verketteten Argumente aus dem technicalAccountID und credential aus der JSON-Konfigurationsdatei übernommen. Der Kennwortwert hat folgende Form: {{technicalAccountId}:{credential}}.

Weitere Informationen zum Verbindung zu externen Clients mit Anmeldeinformationen herstellen.

Welche Art von SQL-Editoren von Drittanbietern kann ich mit dem Query Service Editor verbinden?

+++Antwort Alle SQL-Editoren von Drittanbietern, die PSQL oder Postgres Client-kompatibel ist, kann mit dem Query Service Editor verbunden werden. Weitere Informationen finden Sie in der Dokumentation für Clients mit Query Service verbinden für eine Liste der verfügbaren Anweisungen.
+++

Kann ich das Power BI-Tool mit Query Service verbinden?

++ + Antwort Ja, Sie können Power BI mit Query Service verbinden. Weitere Informationen finden Sie in der Dokumentation für Anweisungen zum Verbinden des Power BI-Desktop-Programms mit Query Service.
+++

Warum dauert das Laden der Dashboards bei der Verbindung mit Query Service lange?

++ + Antwort Wenn das System mit Query Service verbunden ist, ist es mit einer interaktiven oder Batch-Verarbeitungs-Engine verbunden. Dies kann zu längeren Ladezeiten führen, um die verarbeiteten Daten widerzuspiegeln.

Wenn Sie die Antwortzeiten für Ihre Dashboards verbessern möchten, sollten Sie einen Business Intelligence-Server (BI) als Zwischenspeicherungsschicht zwischen Query Service- und BI-Tools implementieren. Im Allgemeinen bieten die meisten BI-Tools ein zusätzliches Angebot für einen Server.

Durch Hinzufügen der Cacheserver-Ebene werden die Daten aus Query Service zwischengespeichert und Dashboards können die Antwort auf diese Weise beschleunigen. Dies ist möglich, da die Ergebnisse für ausgeführte Abfragen jeden Tag auf dem BI-Server zwischengespeichert werden. Der Caching-Server stellt diese Ergebnisse dann für jeden Benutzer mit derselben Abfrage bereit, um die Latenz zu verringern. Weitere Informationen zu dieser Einrichtung finden Sie in der Dokumentation zum Dienstprogramm oder Tool von Drittanbietern, das Sie verwenden.
+++

Ist der Zugriff auf Query Service über das pgAdmin-Verbindungstool möglich?

++ + Antwort Nein, pgAdmin-Konnektivität wird nicht unterstützt. A Liste der verfügbaren Clients von Drittanbietern und Anweisungen zur Verbindung dieser Clients mit Query Service finden Sie in der Dokumentation.
+++

PostgreSQL-API-Fehler

Die folgende Tabelle enthält PSQL-Fehlercodes und die möglichen Ursachen.

Fehler-Code Verbindungsstatus Beschreibung Mögliche Ursache
08P01 K. A. Nicht unterstützter Nachrichtentyp Nicht unterstützter Nachrichtentyp
28P01 Start-up - Authentifizierung Ungültiges Kennwort Ungültiges Authentifizierungs-Token
28000 Start-up - Authentifizierung Ungültiger Autorisierungstyp Ungültiger Autorisierungstyp. Muss AuthenticationCleartextPasswordsein.
42P12 Start-up - Authentifizierung Keine Tabellen gefunden Keine Tabellen zur Verwendung gefunden
42601 Abfrage Syntaxfehler Ungültiger Befehl- oder Syntaxfehler
42P01 Abfrage Tabelle nicht gefunden Die in der Abfrage angegebene Tabelle wurde nicht gefunden
42P07 Abfrage Tabelle vorhanden Eine Tabelle mit demselben Namen ist bereits vorhanden (CREATE TABLE)
53400 Abfrage LIMIT überschreitet den Maximalwert Benutzer hat eine LIMIT-Klausel über 100.000 angegeben
53400 Abfrage Anweisungs-Timeout Die abgesendete Live-Anweisung dauerte mehr als 10 Minuten
58000 Abfrage Systemfehler Interner Systemfehler
0A000 Abfrage/Befehl Nicht unterstützt Die Funktion/Funktion in der Abfrage/dem Befehl wird nicht unterstützt
42501 DROP TABLE Query Dropdown-Tabelle, die nicht von Query Service erstellt wurde Die abgelegte Tabelle wurde nicht von Query Service mit dem CREATE TABLE statement
42501 DROP TABLE Query Vom authentifizierten Benutzer nicht erstellte Tabelle Die abgelegte Tabelle wurde nicht vom aktuell angemeldeten Benutzer erstellt
42P01 DROP TABLE Query Tabelle nicht gefunden Die in der Abfrage angegebene Tabelle wurde nicht gefunden
42P12 DROP TABLE Query Keine Tabelle gefunden für dbName: Bitte überprüfen Sie die dbName In der aktuellen Datenbank wurden keine Tabellen gefunden

Warum habe ich einen Fehlercode 58000 erhalten, wenn ich die history_meta() -Methode in meiner Tabelle verwende?

++ + Antwort auf die history_meta() -Methode verwendet wird, um auf einen Schnappschuss aus einem Datensatz zuzugreifen. Wenn Sie zuvor eine Abfrage für einen leeren Datensatz in Azure Data Lake Storage (ADLS) ausführen würden, würden Sie einen Fehlercode 58000 erhalten, der besagt, dass der Datensatz nicht vorhanden ist. Nachfolgend finden Sie ein Beispiel für den alten Systemfehler.

ErrorCode: 58000 Internal System Error [Invalid table your_table_name. historyMeta can be used on datalake tables only.]

Dieser Fehler ist aufgetreten, weil für die Abfrage kein Rückgabewert vorhanden war. Dieses Verhalten wurde behoben, um die folgende Meldung zurückzugeben:

Query complete in {timeframe}. 0 rows returned.

+++

REST-API-Fehler

Die folgende Tabelle enthält HTTP-Fehlercodes und die möglichen Ursachen.

HTTP-Statuscode Beschreibung Mögliche Ursachen
400 Ungültige Anfrage Falsch formulierte oder illegale Abfrage
401 Authentifizierung fehlgeschlagen Ungültiges Authentifizierungs-Token
500 Interner Server-Fehler Interner Systemfehler

Auf dieser Seite