Campaign: Databricks-Abfragen sind gelegentlich sehr langsam
In diesem Artikel wird beschrieben, wie Sie mithilfe von Databricks FDA die Zeitüberschreitung bei langen Workflow-Abfragen reduzieren können.
Beschreibung description
Eine Kundin oder ein Kunde hat einen Databricks-FDA für Workflow-Abfragen verwendet und ihre Abfragen sind zwischenzeitlich sehr langsam und schlagen aufgrund des Zeitlimits von einer Stunde fehl (ein Ergebnis des Ablaufs des OAuth-Tokens nach einer Stunde). Workflow-Protokolle zeigten Meldungen:
ODB-240000 ODBC-Fehler: [ Simba] [ Hardy] (115) Verbindung fehlgeschlagen mit Fehler: Nicht autorisierte/Verbotene Fehlerantwort zurückgegeben, aber keine Token-abgelaufene Nachricht empfangen SQLState: 08S01
und
ODB-240000 ODBC-Fehler: Authentifizierungstoken ist abgelaufen. Die Benutzerin bzw. der Benutzer muss sich erneut authentifizieren. SQLState: 08001
Lösung resolution
Der Ablauf selbst wird nicht durch die Workflow-Einstellungen von Campaign oder die Konfigurationsdatei „serverConf.xml“ gesteuert. In diesem Setup stellt ACC über den Simba ODBC-Treiber eine Verbindung zu Databricks her, indem er OAuth auf nmsaccountName verwendet. Das langlebige Anmeldeinformationen-/App-Geheimnis mag bis 2031 gültig sein, aber das Zugriffstoken, das für eine ODBC-Verbindung ausgegeben wird, kann immer noch eine viel kürzere Lebensdauer haben, in der Regel 60 Minuten.
Optionen zur Risikominderung:
- Der Databricks-Administrator kann die von Adobe Campaign verwendete OAuth-App/Integration überprüfen und die TTL des Zugriffstokens erhöhen, z. B. durch Aktualisieren der Zugriffsrichtlinie für das Databricks-OAuth-Token wie access_token_ttl_in_minutes. Dies sollte vom Kunden-/Databricks-Administrator durchgeführt werden und der jeweiligen Sicherheitsrichtlinie entsprechen, da langlebige Zugriffstoken die Offenlegung erhöhen, wenn sie durchsickern.
- Lassen Sie nach der Änderung der Token-Richtlinie die Übertragungszeit auf der DataBricks-Seite zu und testen Sie sie erneut mit einer neuen ACC/ODBC-Verbindung. Vorhandene offene Verbindungen können das vorherige Token, das vor der Richtlinienänderung ausgegeben wurde, weiterhin verwenden.
- Teilen oder optimieren Sie operativ die ACC-Workflow-Abfragen, sodass jede einzelne DBX-SQL-Anweisung deutlich unterhalb der Token-Lebensdauer abgeschlossen wird. Dies ist die sicherere und bevorzugte Lösung, da sie auch die intermittierende langsame/in die Warteschlange gestellte DBX-Ausführung behandelt, anstatt nur das Fehlerfenster zu verlängern.
- Überprüfen Sie auf der Seite „Databricks“ den SQL Warehouse-Abfrageverlauf auf die langsamen Ausführungen und stimmen Sie den Warehouse-/Abfragepfad ab: Warteschlangenzeit, Gleichzeitigkeit, Skalierung/Max-Cluster, Kaltstarts, Abfrageplan, Tabellenstatistiken/Layout und Datenvolumen für die Prädikate/Joins.
- Wenn der Kunde DBX-SQL-Anweisungen benötigt, die legitimerweise länger als die Lebensdauer des OAuth-Zugriffstokens ausgeführt werden können, sollte er mit Databricks/Simba bestätigen, ob der vom ODBC-Treiber verwendete OAuth-Modus Token-Aktualisierungen für lang laufende/offene Anweisungen in seiner Konfiguration unterstützt. Andernfalls kann eine Erhöhung der Token-TTL oder die Verwendung eines anderen unterstützten Authentifizierungsmodus erforderlich sein.
Die praktische kurzfristige Lösung besteht also darin, die OAuth-Zugriffs-Token-TTL der Datenblöcke für die ACC-Integration zu erhöhen, während die langfristige Lösung darin besteht, die DBX-Abfragelaufzeit/-warteschlange zu reduzieren, damit Workflows nicht von Token abhängig sind, die sehr lange laufende SQL-Aufrufe überstehen.