Externe Tabellen mit impliziter Partitionierung abfragen

In der autonomen KI-Datenbank können Sie implizite partitionierte externe Tabellen aus partitionierten Daten im Hive-Stil oder aus partitionierten Daten aus einfachen Ordnern erstellen, die in Ihrem Cloud-Objektspeicher gespeichert sind.

Externe Tabellen mit impliziter Partitionierung

Verwenden Sie in der autonomen KI-Datenbank die Prozedur DBMS_CLOUD.CREATE_EXTERNAL_TABLE, um implizite partitionierte externe Tabellen aus partitionierten Daten im Hive-Stil oder aus partitionierten Daten aus einfachen Ordnern zu erstellen, die in Ihrem Cloud-Objektspeicher gespeichert sind.

Durch die Übergabe der entsprechenden Optionen an diese Prozedur werden die Partitionen aus den Quelldaten abgeleitet. Die partitionierten externen Tabellen unterstützen die Laufzeit-Discovery von Partitionsspalten und deren Werten. Die Laufzeit-Discovery von Änderungen in der zugrunde liegenden Objektspeicherstruktur, wie das Hinzufügen oder Entfernen von Objekten, vereinfacht den Verwaltungsprozess, indem zusätzliche Synchronisierungsprozeduren, die für DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE erforderlich sind, vermieden werden. Dadurch wird sichergestellt, dass die Daten zur Abfragelaufzeit auf dem neuesten Stand sind.

Bei der impliziten Partitionierung bestimmt die autonome KI-Datenbank automatisch die Spalten, auf denen eine Tabelle "partitioniert" wird, basierend auf der hierarchischen Dateistruktur der Objektspeicherquelle. Ein Partitionierungsschema muss nicht explizit deklariert werden. Die implizite Partitionierung bietet Vorteile für die Partitionierungstabellen, ohne dass explizit eine partitionierte externe Tabelle mit der Prozedur DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE definiert werden muss.

Um die Abfrageantwortzeit für Abfragen mit sehr großen Datasets mithilfe der impliziten Partitionierung zu optimieren, können Sie die Optimierung aktivieren, indem Sie strict_column_order auf "true" setzen. Der Parameter strict_column_order ist eine Unteroption der Formatoption implicit_partition_config. Diese Optimierung gilt nur, wenn partition_type hive ist. See Query External Implicit Partitioned Data with Hive Format Source File Organization for an example and DBMS_CLOUD Package Format Options for more information on the implicit partitioning format parameters.

Implizite partitionierte externe Tabellen unterstützen die folgenden Benennungsstile für partitionierte Objekte im Objektspeicher:

Weitere Informationen zu Benennungsformaten finden Sie unter Informationen zu externen Tabellen mit der Partitionierung von Quelldateien.

Mit der Prozedur DBMS_CLOUD.CREATE_EXTERNAL_TABLE können implizite partitionierte externe Tabellen wie folgt erstellt werden:
  • Implizite Partitionierung optimieren Verwenden Sie die Option implicit_partition_config, um die implizite Partitionierung und Optimierung der verstrichenen Abfragezeit zu aktivieren.

    In diesem Beispiel wird die implizite Partitionierung aktiviert, indem partition_type auf "hive" gesetzt wird. Der einzige gültige Wert für partition_type ist hive. Die Optimierung wird aktiviert, indem setting strict_column_order auf "true" gesetzt wird. Die Option partition_columns gibt an, welche Spalten partitioniert sind.

    Beispiel:

    BEGIN
    dbms_cloud.create_external_table (
       table_name        => 'partitions1',
       file_uri_list     => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet',
       column_list       => 'c varchar2(100), y number, total_sales number',
       format            => '{"type":"parquet",
                              "implicit_partition_config":{
                                        "partition_type":"hive",
                                        "strict_column_order":true,
                                        "partition_columns":["org","tenant","dbtype","year","month","day"]
                              }
                              }');
    END;
    /
  • Partitionstyp mit einer bestimmten Liste von Partitionsspalten auf "Hive" setzen

    In diesem Fall ist implicit_partition_type auf hive gesetzt, und implicit_partition_columns stellt eine Liste der Partitionsspalten bereit.

    Beispiel:

    BEGIN
    DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
       table_name        => 'mysales',
       credential_name   => 'MY_CREDENTIAL',
       file_uri_list     => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet',
       column_list       => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)',
       format            => '{"type":"parquet",
                              "implicit_partition_type":"hive",
                              "implicit_partition_columns":["country","year","month"]}');
    END;
    /
  • Partitionstyp auf "hive" setzen, ohne eine Liste der Partitionsspalten anzugeben

    In diesem Fall wird implicit_partition_type auf hive gesetzt, und implicit_partition_columns wird nicht angegeben. Die Partitionsspalten werden automatisch erkannt, indem Sie in dem von file_uri_list angegebenen Pfad nach "=" suchen. Die column_name befindet sich links von "=", und der Wert befindet sich auf der rechten Seite. Wenn eine column_name im Pfad nicht gefunden wird, wird ein Fehler ausgelöst.

    Beispiel:

    BEGIN
    DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
       table_name        => 'mysales',
       credential_name   => 'MY_CREDENTIAL',
       file_uri_list     => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet',
       column_list       => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)',
       format            => '{"type":"parquet", "implicit_partition_type":"hive"');
    END;
    /
  • Geben Sie eine Liste der Partitionsspalten an, ohne den Typ anzugeben

    In diesem Fall ist implicit_partition_type nicht festgelegt, und implicit_partition_columns stellt eine Liste mit Spalten bereit.

    Beispiel:

    BEGIN
    DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
       table_name        => 'mysales',
       credential_name   => 'MY_CREDENTIAL',
       file_uri_list     => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet',
       column_list       => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)',
       format            => '{"type":"parquet",
                              "implicit_partition_columns":["country","year","month"]}');
    END;
    /

Weitere Informationen finden Sie unter Externe implizite partitionierte Daten mit Quelldateiorganisation im Hive-Format abfragen und Prozedur CREATE_EXTERNAL_TABLE.

Externe implizite partitionierte Daten mit Quelldatei-Organisation im Hive-Format abfragen

Verwenden Sie die Prozedur DBMS_CLOUD.CREATE_EXTERNAL_TABLE, um eine implizite partitionierte externe Tabelle aus Daten im Objektspeicher zu erstellen, die aus Hive-Daten generiert wurden.

Die Beispielquelldateien im folgenden Beispiel verwenden das folgende Benennungsformat:

OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet

Beachten Sie die folgenden Beispielquelldateien:

OBJBUCKET/sales/country=USA/year=2024/month=01/sales-2024-01.parquet

OBJBUCKET/sales/country=USA/year=2024/month=02/sales-2024-02.parquet

OBJBUCKET/sales/country=USA/year=2024/month=02/sales-2024-03.parquet

Um eine implizite partitionierte externe Tabelle mit Daten zu erstellen, die in diesem Hive-Beispielformat gespeichert sind, gehen Sie wie folgt vor:

  1. Speichern Sie Objektspeicherzugangsdaten mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL.

    Beispiel:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'MY_CREDENTIAL',
        username => 'adb_user@example.com',
        password => 'password' );
    END;
    /

    Das Erstellen von Zugangsdaten für den Zugriff auf den Oracle Cloud Infrastructure-Objektspeicher ist nicht erforderlich, wenn Sie Resource-Principal-Zugangsdaten aktivieren. Weitere Informationen finden Sie unter Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen nutzen.

    Bei diesem Vorgang werden die Zugangsdaten in der Datenbank in einem verschlüsselten Format gespeichert. Sie können einen beliebigen Namen für den Zugangsdatennamen verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, wenn sich die Zugangsdaten des Objektspeichers nicht ändern. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen zum Erstellen externer Tabellen verwenden.

    Informationen zu den Parametern username und password für verschiedene Objektspeicherservices finden Sie unter Prozedur CREATE_CREDENTIAL.

  2. Erstellen Sie eine implizite partitionierte externe Tabelle auf der Basis der Quelldateien mit der Prozedur DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE.
    1. Fall 1: Aktivieren Sie die implizite Partitionierung.
      Da in diesem Beispiel die Formatoption implicit_partition_columns nicht angegeben ist, werden Partitionsspalten automatisch erkannt, und die implizite Partitionierung wird aktiviert, indem die Formatoption implicit_partition_type auf hive gesetzt wird.

      Wenn jedoch eine Liste mit Spalten angegeben wird, werden diese Spalten als Partitionsspalten verwendet, und die autonome KI-Datenbank versucht nicht, die Spalten zu ermitteln.

      Um die Partitionsspalten zu ermitteln, beginnt die autonome KI-Datenbank mit der Suche am Anfang des Pfads, der mit file_uri_list für "=" angegeben ist. Wenn gefunden, wird der linke Teil von '=' bis zum letzten '/' als Spalte (z.B. "Land") und der rechte Teil von '=' bis zum ersten '/' als Wert (z.B. "USA") übernommen. Die Suche wird nach '=' fortgesetzt, bis nach dem '/', das dem ersten Partitionswert folgt, das zweite '=' im Pfad erkannt wird usw.

      BEGIN
      DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
         table_name        => 'mysales',
         credential_name   => 'MY_CREDENTIAL',
         file_uri_list     => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet',
         column_list       => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)',
         format            => '{"type":"parquet", "implicit_partition_type":"hive"');
      END;
      /

      Die Parameter sind:

      • table_name: Der Name der externen Tabelle.

      • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden.

      • file_uri_list: ist eine durch Komma getrennte Liste der Quelldatei-URIs. Für diese Liste stehen zwei Optionen zur Verfügung:

        • Geben Sie eine durch Komma getrennte Liste einzelner Datei-URIs ohne Platzhalter an.

        • Geben Sie eine einzelne Datei-URI mit Platzhaltern an, wobei die Platzhalter nur nach dem letzten Schrägstrich "/" stehen dürfen. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden.

        In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

      • column_list: ist eine durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. Die Liste enthält die Spalten innerhalb der Datendatei und die Spalten, die aus dem Objektnamen abgeleitet werden (aus den Namen im Dateipfad, der mit file_uri_list angegeben wird).

        Die column_list ist nicht erforderlich, wenn es sich bei den Datendateien um strukturierte Dateien (Parquet, Avro oder ORC) handelt.

      • format: Definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben können. Die Option implicit_partition_type gibt den Datenformattyp als "hive" an.

        Wenn die Daten in der Quelldatei verschlüsselt sind, entschlüsseln Sie die Daten, indem Sie die Formatoption encryption angeben. Weitere Informationen zum Entschlüsseln von Daten finden Sie unter Daten beim Importieren aus Object Storage entschlüsseln.

        Weitere Informationen finden Sie unter DBMS_CLOUD Packageformatoptionen.

    1. Fall 2: Optimierte implizite Partitionierung
      In diesem Beispiel wird die implizite Partitionierung durch Angabe der Formatoption implicit_partition_config aktiviert. Die optimierte implizite Partitionierung wird aktiviert, indem strict_column_order auf "true" gesetzt wird.

      Da partition_columns eine Liste mit partitionierten Spalten angibt, werden diese Spalten als Partitionsspalten verwendet, und die autonome KI-Datenbank versucht nicht, die Spalten zu ermitteln.

      BEGIN
      dbms_cloud.create_external_table (
         table_name        => 'mysales',
         credential_name   => 'MY_CREDENTIAL',
         file_uri_list     => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet',
         column_list       => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)',
         format            => '{"type":"parquet",
                                "implicit_partition_config":{
                                          "partition_type":"hive",
                                          "strict_column_order":true,
                                          "partition_columns":["country","year","month","day"]
                                }
                                }');
      END;
      /

      Die Formatparameter sind:

      • format: Definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben können. Die Option implicit_partition_config weist die folgenden Unteroptionen auf:
        • partition_type

          Der einzige akzeptierte Wert ist "hive". Der standardmäßige Pfad für Nicht-Hive-Dateinamen. Wenn partition_type nicht angegeben wird, wird ein Clientfehler zurückgegeben.

        • partition_columns

          Liste der partitionierten Spalten.

        • strict_column_order

          Setzen Sie diesen Wert auf true, um die optimierte implizite Partitionierung zu aktivieren. Setzen Sie diesen Wert auf true, nur für Fälle, in denen Sie wissen, dass sich der Objektspeicherpfad nicht ändert und keine Präfixe fehlen. Setzen Sie den Wert auf false, oder deaktivieren Sie ihn.

        Wenn die Daten in der Quelldatei verschlüsselt sind, entschlüsseln Sie die Daten, indem Sie die Formatoption encryption angeben. Weitere Informationen zum Entschlüsseln von Daten finden Sie unter Daten beim Importieren aus Object Storage entschlüsseln.

        Weitere Informationen finden Sie unter DBMS_CLOUD Packageformatoptionen.

    Ausführliche Informationen zu den Parametern finden Sie unter Prozedur CREATE_EXTERNAL_TABLE. Weitere Informationen zu den unterstützten Cloud-Objektspeicherservices finden Sie unter DBMS_CLOUD URI-Formate.

  3. Jetzt können Sie Abfragen für die externe partitionierte Tabelle ausführen, die Sie im vorherigen Schritt erstellt haben.

    Ihre autonome KI-Datenbank nutzt die Partitionierungsinformationen Ihrer externen partitionierten Tabelle, um sicherzustellen, dass die Abfrage nur auf die relevanten Datendateien im Objektspeicher zugreift.

    Beispiel:

    SELECT product, units FROM mysales WHERE year='2024' and month='02'

    Diese SQL-Anweisung fragt nur Daten in der Partition für Monat 02 des Jahres 2024 ab.

Optimierung der Objektspeicherabfrageplanung mit der Option strict_column_order

Wenn eine Abfrage auf einen Objektspeicherordner mit einer sehr großen Anzahl von Dateien und Unterordnern abzielt, kann die Planungs- und Auflistungsphase zu den primären Kosten werden, bevor Daten tatsächlich gescannt werden. Dies ist bei Ordnerlayouts im Hive-Stil üblich, bei denen Partitionswerte in den Pfad eingebettet sind.

Hinweis

  • Die Einstellung strict_column_order ist standardmäßig deaktiviert. Aktivieren Sie diese Option nur, wenn das Pfadlayout konsistent ist.

  • Wenn sich die Ordnerkonventionen ändern (z. B. Hinzufügen, Entfernen oder Neuanordnen von Partitionsspalten), müssen Sie die Option partition_columns aktualisieren und diese Option möglicherweise deaktivieren.

Aktivieren Sie die Option strict_column_order wie folgt:

Wenn Ihre Daten partitionierte Pfade im Hive-Stil verwenden und die Partitionsspalten immer in einer festen, konsistenten Reihenfolge ohne fehlende Segmente angezeigt werden, aktivieren Sie die Optimierung mit der folgenden Einstellung:

strict_column_order = true  (with partition_type = "hive")

Die Datenbank kann unnötige Verzeichnisse überspringen, indem sie die Reihenfolge der bereits definierten Partitionen befolgt. Dies bedeutet, dass nicht jedes einzelne Objekt aufgelistet werden muss, was die Planungszeit für große Datensätze erheblich verkürzen kann.

Hinweise zur Verwendung der Option strict_column_order:

  • Pfade folgen der Benennung und Reihenfolge von Hive. Beispiel:

    .../country=US/year=2025/month=09/...
  • Die Partitionsspalten behalten eine feste Menge und Sequenz bei, ohne dass Präfixe neu angeordnet oder übersprungen werden.

  • Sie müssen die Planzeitauflistung für Ordner optimieren, die eine sehr große Anzahl von Objekten enthalten.
  • Sie können diese Option nicht in Datasets verwenden, in denen nicht alle Präfixe vorhanden sind. Zum Beispiel enthalten einige Ordner Jahr=, während andere mit Monat= beginnen.

Beispiele: Verwenden Sie die Option strict_column_order für Partitionen im Hive-Stil mit DBMS_CLOUD.CREATE_EXTERNAL_TABLE

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name        => 'sales_xt',
    credential_name   => 'MY_CREDENTIAL',
    file_uri_list     => 'https://objectstorage.example.com/n/tenant/b/lake/o/sales/',
    -- Data is stored as: .../country=US/year=2025/month=09/*.parquet
    column_list       => 'product       VARCHAR2(100),
                          units         NUMBER,
                          amount        NUMBER,
                          country       VARCHAR2(30),
                          year          NUMBER,
                          month         NUMBER',
    format            => '{
      "type": "parquet",
      "implicit_partition_config": {
        "partition_type": "hive",
        "partition_columns": ["country","year","month"],
        "strict_column_order": true
      }
    }'
  );
END;
/

Vergewissern Sie sich, dass die Planungslogik die Auflistung nicht zugehöriger Pfade der obersten Ebene vermeidet (z.B. Pfade, die zu anderen Ländern oder Jahren gehören):

  • Führen Sie eine selektive Abfrage aus, die führende Partitionen einschränkt. Beispiel:
    SELECT COUNT(*) FROM sales_xt WHERE country = ''US'' AND year = 2025;
    mit
    strict_column_order = true
    .
  • Wenn die Layoutannahmen nicht erfüllt sind, deaktivieren Sie die Option, und wiederholen Sie den Vorgang.

Externe implizite partitionierte Nicht-Hive-Formatdaten abfragen

Verwenden Sie die Prozedur DBMS_CLOUD.CREATE_EXTERNAL_TABLE, um eine implizite partitionierte externe Tabelle aus Daten im Objektspeicher zu erstellen, die aus Nicht-Hive-Daten generiert wurden.

Die Beispielquelldateien im folgenden Beispiel verwenden das folgende Benennungsformat:

OBJBUCKET/<table>/<value1>/<value2>/file.parquet

Beachten Sie die folgenden Beispielquelldateien:

OBJBUCKET/sales/USA/2024/01/sales-2024-01.parquet

OBJBUCKET/sales/USA/2024/01/sales-2024-02.parquet

OBJBUCKET/sales/USA/2024/01/sales-2024-03.parquet

Um eine implizite partitionierte externe Tabelle mit Daten zu erstellen, die in diesem Hive-Beispielformat gespeichert sind, gehen Sie wie folgt vor:

  1. Speichern Sie Objektspeicherzugangsdaten mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL.

    Beispiel:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'MY_CREDENTIAL',
        username => 'adb_user@example.com',
        password => 'password' );
    END;
    /

    Das Erstellen von Zugangsdaten für den Zugriff auf den Oracle Cloud Infrastructure-Objektspeicher ist nicht erforderlich, wenn Sie Resource-Principal-Zugangsdaten aktivieren. Weitere Informationen finden Sie unter Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen nutzen.

    Bei diesem Vorgang werden die Zugangsdaten in der Datenbank in einem verschlüsselten Format gespeichert. Sie können einen beliebigen Namen für den Zugangsdatennamen verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, wenn sich die Zugangsdaten des Objektspeichers nicht ändern. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen zum Erstellen externer Tabellen verwenden.

    Informationen zu den Parametern username und password für verschiedene Objektspeicherservices finden Sie unter Prozedur CREATE_CREDENTIAL.

  2. Erstellen Sie eine implizite partitionierte externe Tabelle auf der Basis der Quelldateien mit der Prozedur DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE.
    In diesem Beispiel wird die implizite Partitionierung aktiviert, indem den Partitionsspalten die Formatoption implicit_partition_columns bereitgestellt wird. Da der Ordnername die Partitionsspalten nicht enthält, können die Partitionswerte im mit file_uri_list angegebenen Pfad nur ermittelt werden, wenn eine explizite Spaltenliste mit der Formatoption implicit_partition_columns angegeben wird. Um die jeweiligen Spaltenwerte im Pfad zu erkennen, muss die Reihenfolge der Spalten mit der Reihenfolge der Werte übereinstimmen.

    Die Partitionsspalten werden automatisch erkannt.
    BEGIN
    DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
       table_name        => 'mysales',
       credential_name   => 'MY_CREDENTIAL',
       file_uri_list     => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/*.parquet',
       column_list       => 'product varchar2(100), units number, country varchar2(100),year (number), month varchar2(2)',
       format            => '{"type":"parquet", "implicit_partition_columns":["country","year","month"]}');
    END;
    /

    Die Parameter sind:

    • table_name: Der Name der externen Tabelle.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden.

    • file_uri_list: ist eine durch Komma getrennte Liste der Quelldatei-URIs. Für diese Liste stehen zwei Optionen zur Verfügung:

      • Geben Sie eine durch Komma getrennte Liste einzelner Datei-URIs ohne Platzhalter an.

      • Geben Sie eine einzelne Datei-URI mit Platzhaltern an, wobei die Platzhalter nur nach dem letzten Schrägstrich "/" stehen dürfen. Das Zeichen "*" kann als Platzhalter für mehrere Zeichen, das Zeichen "?" als Platzhalter für ein einzelnes Zeichen verwendet werden.

    • column_list: ist eine durch Komma getrennte Liste der Spaltennamen und Datentypen für die externe Tabelle. Die Liste enthält die Spalten innerhalb der Datendatei und die Spalten, die aus dem Objektnamen abgeleitet werden (aus den Namen im Dateipfad, der mit file_uri_list angegeben wird).

      Die column_list ist nicht erforderlich, wenn es sich bei den Datendateien um strukturierte Dateien (Parquet, Avro oder ORC) handelt.

    • format: Definiert die Optionen, die Sie zur Beschreibung des Formats der Quelldatei angeben können. Die Option implicit_partition_type ist deaktiviert. Da implicit_partition_columns angegeben ist, wird der Typ automatisch als Nicht-Hive erkannt.

      Wenn die Daten in der Quelldatei verschlüsselt sind, entschlüsseln Sie die Daten, indem Sie die Formatoption encryption angeben. Weitere Informationen zum Entschlüsseln von Daten finden Sie unter Daten beim Importieren aus Object Storage entschlüsseln.

      Weitere Informationen finden Sie unter DBMS_CLOUD Packageformatoptionen.

    In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Ausführliche Informationen zu den Parametern finden Sie unter Prozedur CREATE_EXTERNAL_TABLE.

    Weitere Informationen zu den unterstützten Cloud-Objektspeicherservices finden Sie unter DBMS_CLOUD URI-Formate.

  3. Jetzt können Sie Abfragen für die externe partitionierte Tabelle ausführen, die Sie im vorherigen Schritt erstellt haben.

    Ihre autonome KI-Datenbank nutzt die Partitionierungsinformationen Ihrer externen partitionierten Tabelle, um sicherzustellen, dass die Abfrage nur auf die relevanten Datendateien im Objektspeicher zugreift.

    Beispiel:

    SELECT product, units FROM mysales WHERE year='2024'

    Diese SQL-Anweisung fragt nur Daten in der Partition für das Jahr 2024 ab.