Fehler mit dem Data Share-Tool beheben

Dieses Kapitel enthält Anleitungen zu Problemen, die zu langsamer Performance führen, und zu deren Behebung.

Themen:

Live Share-Funktion Langsame Leistung

Verbessert sich mit einer Zunahme der ECPUs die Performance der Live-Freigabefunktion im Datenfreigabetool, während komplexe Abfragen ausgeführt werden?

Nein, nicht. In solchen Fällen müssen Sie den Parallelitätsgrad (DOP) mit Data Studio konfigurieren, um die Performance komplexer ausgeführter Abfragen zu verbessern.

Parallelitätsgrad (DOP) mit Data Studio konfigurieren

Wenn das Live Share-Feature der Database Actions-Instanz mit einem erhöhten ECPU-Wert ausgeführt wird, verbessert sich die Performance der komplexen ausgeführten Abfragen standardmäßig nicht.

Mit der DOP-Option können Sie die Performance der komplexen ausgeführten Abfragen verbessern. Der DOP legt die Anzahl der Prozessoren fest, die zum Ausführen einer einzelnen Anweisung für jede parallele Planausführung verwendet werden. In diesem Abschnitt wird beschrieben, wie Sie die Konfigurationsoption degree of parallelism (DOP) in der autonomen KI-Datenbank mit dem Live Share-Feature von Data Studio konfigurieren.

In diesem Beispiel verwenden Sie die Live Share-Funktion und verwenden Tabellen mit einer unkomprimierten Größe von 1 TB gemeinsam.

Bevor Sie beginnen, hier sind ein paar Dinge, die Sie beachten müssen:
  • Die Option zum Konfigurieren des Wertes von DOP kann nur von einem admin ausgeführt werden.
Voraussetzung:
  • Melden Sie sich bei der Database Actions-Instanz als Admin an, und wählen Sie unter Administration die Option Resource Management-Regeln festlegen aus.
  • Beachten Sie den standardmäßigen Nebenwährungswert und den standardmäßigen DOP.
Um den Parallelisierungsgrad mit Data Studio zu konfigurieren, um die Performance komplexer ausgeführter Abfragen zu verbessern, gehen Sie wie folgt vor:
  • Share als Provider erstellen.
  • Nutzen Sie Share als Consumer, und erstellen Sie externe Abfragen über Ihre Shares, um die Ausführungszeit der Abfrage aufzuzeichnen.
  • Erhöhen Sie die ECPUs auf einen Wert, der größer als der aktuelle Wert als Provider und Consumer ist, und zeichnen Sie die Abfrageausführungszeit auf.
  • Konfigurieren Sie den Wert DOP für die Nutzungsgruppe MEDIUM.
  • Verwenden Sie dieselbe Freigabe, und notieren Sie die Ausführungszeit der Abfrage derselben Tabelle.

Hinweis:

Sie müssen die Anzahl ECPU und den Wert DOP als Provider mit ADMIN-Berechtigungen konfigurieren.
Klicken Sie im Launchpad von Database Actions auf Selektor, und wählen Sie das Tool Datenfreigabe aus der Data Studio-Toolsuite aus.
  1. Share als Provider erstellen.
    1. Klicken Sie auf Shares bereitstellen, und wählen Sie +Share erstellen aus.
    2. Geben Sie im Assistenten "Freigabe erstellen" im Feld Name der Registerkarte "Allgemein" einen Namen für die Freigabe ein. Beispiel: TEST.



      Geben Sie im Feld Beschreibung eine Beschreibung für die Daten ein, die Sie teilen. Dies ist ein fakultatives Feld.

      Wählen Sie Weiter, um zur Registerkarte "Veröffentlichungsdetails" zu gelangen.

    3. Wählen Sie auf der Registerkarte "Tabellen für Veröffentlichungsdetails" des Assistenten die Option LIVE DATA USING DIRECT CONNECTION.



      Klicken Sie auf Weiter.

    4. Wählen Sie in der Registerkarte Tabellen auswählen des Assistenten das Schema aus dem Dropdown-Menü aus, und ziehen Sie die Tabelle CUSTOMER per Drag-and-Drop aus den verfügbaren Tabellen.



      Hinweis:

      In diesem Beispiel wird eine einzelne Tabelle namens Customer mit großer Größe gemeinsam verwendet.

      Klicken Sie auf Weiter, um zur Registerkarte "Empfänger" des Assistenten "Teilen erstellen" zu gelangen.

    5. Wählen Sie im Assistenten "Teilen erstellen" auf der Registerkarte "Empfänger" in der Dropdown-Liste die Option MY_COMPARTMENT aus.

    6. Wählen Sie Erstellen aus, um die Freigabe zu erstellen.



  2. Nutzen Sie Share als Consumer, und erstellen Sie externe Abfragen über Ihre Shares, um die Ausführungszeit der Abfrage aufzuzeichnen.
    1. Nachdem Sie die Freigabe als Provider erstellt haben, verwenden Sie die vom Provider gemeinsam genutzten Daten.

      Weitere Informationen finden Sie unter Freigabe konsumieren.

    2. Melden Sie sich als Verbraucher an, um den Datenfreigabeprovider zu abonnieren und auf die Daten in Ihrer Freigabe zuzugreifen.
    3. Klicken Sie auf der Seite Provider und Consumer des Tools "Datenfreigabe" auf die Kachel SUMME SHARE, um die Seite Freigabe konsumieren anzuzeigen.
    4. Klicken Sie auf die Dropdown-Liste Freigabeprovider abonnieren und dann auf die Option Live Share-Provider abonnieren.



    5. Wählen Sie unter "Providerdetails freigeben" den Providernamen aus. In diesem Beispiel ist TPUSER der Name des Providers.



    6. Klicken Sie auf der Seite "Providereinstellungen abonnieren" im Bereich Shares hinzufügen im Abschnitt Verfügbare Shares auf TEST, und klicken Sie dann auf das Symbol (>).



    7. Das Tool fügt das Share zum Abschnitt Ausgewählte Shares hinzu. Klicken Sie auf Abonnieren.
    8. Ein TPUSER-Freigabeprovider wurde erfolgreich erstellt. Eine Informationsmeldung wird angezeigt. Sie werden zur Seite Daten laden geleitet, wobei die Registerkarte Teilen ausgewählt ist.



    9. Blenden Sie den Datenfreigabeknoten TESTSHARE ein, um die darin enthaltenen Objekte anzuzeigen. Verschieben Sie die gemeinsam verwendete Tabelle TPUSER.CUSTOMER per Drag-and-Drop, um sie dem Dataload-Job hinzuzufügen.
    10. Die gemeinsam verwendete Tabelle wird dem Datenlinkjob hinzugefügt. Wenn Sie diesen Job ausführen, wird eine neue CUSTOMER-Ansicht über der Tabelle CUSTOMER erstellt, die für Sie freigegeben wurde.
    11. Klicken Sie auf Starten. Das Dialogfeld Link aus Cloud Store starten wird angezeigt. Klicken Sie auf Ausführen. Wenn der Job erfolgreich abgeschlossen wurde, wird ein Linksymbol angezeigt. Die Ansicht CUSTOMER wird erstellt.
    12. Klicken Sie auf das Banner Database Actions | Data Share. Klicken Sie auf der Registerkarte Database Actions | Launchpad auf die Registerkarte Entwicklung, und klicken Sie dann auf die Registerkarte SQL, um das SQL-Arbeitsblatt anzuzeigen.



    13. Verschieben Sie die Tabelle CUSTOMER per Drag-and-Drop in den SQL Worksheet-Bereich.
    14. In einem Dialogfeld werden die Typen der verfügbaren Einfügungen angezeigt.
    15. Klicken Sie auf Auswählen, Anwenden.





    16. Klicken Sie auf Ausführen. Sie können die automatisch generierte Abfrage anzeigen, die im Arbeitsblatt angezeigt wird.



    17. Beachten Sie die Abfrageausführungszeit im Feld Ausführungszeit, das unter der Registerkarte "Abfrageergebnis" angezeigt wird.
  3. Erhöhen Sie die ECPUs als Provider und Consumer, und erfassen Sie die Abfrageausführungszeit.
    1. Erhöhen Sie die ECPUs Ihrer Autonomous AI Database-Instanz als Provider und Verbraucher über Ihre OCI-Konsole.

      Hinweis:

      Stellen Sie sicher, dass die automatische Skalierung nicht aktiviert ist.

      In diesem Beispiel haben wir die ECPU-Anzahl auf 32 erhöht. Sie können die ECPU-Anzahl auf einen beliebigen Wert Ihrer Wahl erhöhen.

    2. Wiederholen Sie den Vorgang, indem Sie dieselbe CUSTOMER-Freigabe verwenden und die Abfrageausführungszeit berechnen. Die Zeit für die Abfrage der Tabelle ändert sich nicht.
  4. Konfigurieren Sie den DOP-Wert für die Nutzungsgruppe MEDIUM.
    1. Melden Sie sich bei der Instanz der Datenbankaktionen als Consumer mit der Berechtigung ADMIN an.
    2. Klicken Sie auf Selektor, und wählen Sie unter Administration die Option Resource Management-Regeln festlegen aus.

    3. Verringern Sie das Grenzwert für Parallelität der Nutzungsgruppe MEDIUM auf 8, und klicken Sie auf Änderungen speichern. Wenn Sie das Nebenläufigkeitslimit verringern, erhöht sich der DOP.



    Hinweis:

    Das in diesem Schritt festgelegte Nebenläufigkeitslimit muss kleiner sein als der Standardwert, den Sie in der Voraussetzung angegeben haben.
  5. Follow-up-Schritt – Nachdem Sie die Option für den Parallelisierungsgrad konfiguriert haben, wiederholen Sie den Prozess, bei dem die Freigabe konsumiert wird, und erstellen externe Abfragen über Ihren Shares, um die Ausführungszeit der Abfrage aufzuzeichnen.

    Der Wert der Abfrageausführungszeit wurde verringert.

Die Verbesserung der Performance der gleichen komplexen SQL-Abfragen erfolgt sofort, ohne den Server neu zu starten.

Fehler bei Abfrageversuch für gemeinsame Tabelle

Problem: Der Versuch, eine gemeinsame Tabelle abzufragen, verläuft nicht erfolgreich. Es wird ein Fehler angezeigt, der nicht unterstützte Delta-Tabellenfunktionen angibt.

Wahrscheinliche Ursache: In der gemeinsamen Tabelle werden Löschvektoren verwendet, die ein Delta Lake-Feature sind. Autonome KI-Datenbank Delta Sharing-Verbraucher unterstützt keine Löschvektoren (DV).

Lösung: Bitten Sie den Provider, DV aus der Tabelle zu entfernen.
  • Verwenden Sie auf Databricks 16.3+ ALTER TABLE <table_name> DROP FEATURE deletionVectors; , und teilen Sie es erneut.
  • Verlassen Sie nicht nur auf die Einstellung {{delta.enableDeletionVectors=false - }}, mit der die neue DV-Verwendung gestoppt wird, sondern das Protokoll nicht heruntergestuft wird. Befolgen Sie die Anweisungen unter Drop a Delta Lake table feature and downgrade table protocol.

  • Weitere Informationen finden Sie unter Was sind Löschvektoren?.

HTTP 403 wegen Ausnahmeliste für Remote-IP nicht autorisiert

Problem: Der Zugriff auf freigegebene Daten oder das Herunterladen von Remotedaten ist mit einem HTTP 403 - Unauthorized-Fehler nicht erfolgreich.

Wahrscheinliche Ursache: Der Remoteservice, z.B. Azure Blob Storage oder ein anderer externer Endpunkt, ist mit einer Quell-IP-Ausnahmeliste konfiguriert, die nicht die öffentliche ausgehende IP-Adresse enthält, die von Autonomous AI Database verwendet wird.

Hinweis:

Verwenden Sie die folgende Abfrage nicht, um die ausgehende IP-Adresse zu identifizieren:

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;

Diese Abfrage gibt die Client-IP-Adresse für die aktuelle Sitzung zurück, nicht die ausgehende IP-Adresse, die vom externen Service erkannt wird.

Lösung: Identifizieren Sie die ausgehende IP-Adresse der autonomen KI-Datenbank, indem Sie eine HTTPS-Anforderung an einen öffentlichen Endpunkt senden, der die IP-Adresse des Aufrufers zurückgibt. Bitten Sie dann den Remote-Serviceadministrator, diese IP-Adresse der Ausnahmeliste hinzuzufügen.

  1. Zugriff auf den Testendpunkt erteilen.

    BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host       => 'httpbin.org',
        lower_port => 443,
        upper_port => 443,
        ace        => xs$ace_type(
                        privilege_list => xs$name_list('http'),
                        principal_name => USER,
                        principal_type => xs_acl.ptype_db));
    END;
    /
  2. Fragen Sie den Endpunkt in einer autonomen KI-Datenbank ab.

    SET SERVEROUTPUT ON
    
    DECLARE
      resp UTL_HTTP.resp;
      line VARCHAR2(32767);
    BEGIN
      resp := UTL_HTTP.begin_request('https://httpbin.org/ip');
      resp := UTL_HTTP.get_response(resp);
      UTL_HTTP.read_line(resp, line, TRUE);
      DBMS_OUTPUT.put_line('Autonomous Database outbound IP = ' || line);
      UTL_HTTP.end_response(resp);
    END;
    /
    
    Die Antwort enthält die öffentliche IP-Adresse, die vom externen Service angezeigt wird. Beispiel:
    {{{"origin":"150.136.133.92"}}}
  3. Fügen Sie die IP-Adresse zur Remoteausnahmeliste hinzu.

    Aktualisieren Sie die Firewall, die Netzwerkregeln für Speicherkonten oder die Ausnahmeliste auf Partnerseite, um die IP-Adresse einzuschließen.

Nachdem die Ausnahmeliste aktualisiert wurde, wiederholen Sie den Datenzugriffs- oder Datenfreigabevorgang.