Externe Tabellen mit impliziter Partitionierung abfragen
In Autonomous Database können Sie implizite partitionierte externe Tabellen aus partitionierten Daten im Hive-Stil oder aus partitionierten einfachen Ordnern erstellen, die in Ihrem Cloud-Objektspeicher gespeichert sind.
- Info zu externen Tabellen mit impliziter Partitionierung
Verwenden Sie in Autonomous Database die ProzedurDBMS_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 im Cloud-Objektspeicher gespeichert sind. - Externe implizite partitionierte Daten mit der Quelldateiorganisation im Hive-Format abfragen
Mit der ProzedurDBMS_CLOUD.CREATE_EXTERNAL_TABLE
können Sie eine implizite partitionierte externe Tabelle aus Daten im Objektspeicher erstellen, die aus Hive-Daten generiert wurden. - Externe implizite partitionierte Nicht-Hive-Stildaten abfragen
Mit der ProzedurDBMS_CLOUD.CREATE_EXTERNAL_TABLE
können Sie eine implizite partitionierte externe Tabelle aus Daten im Objektspeicher erstellen, die aus Nicht-Hive-Daten generiert wurden.
Übergeordnetes Thema: Externe Daten mit Autonomous Database abfragen
Externe Tabellen mit impliziter Partitionierung
Verwenden Sie in Autonomous Database 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 im Cloud-Objektspeicher gespeichert sind.
Verwenden Sie die Prozedur DBMS_CLOUD.CREATE_EXTERNAL_TABLE
, um implizite partitionierte externe Tabellen zu erstellen. 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 Autonomous Database 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.
Implizite partitionierte externe Tabellen unterstützen die folgenden Benennungsstile für partitionierte Objekte im Objektspeicher:
- Hive-Benennungsformat: Daten im Objektspeicher, die von Hive generiert wurden, haben das folgende Format.
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
Ein Beispiel finden Sie unter Externe implizite partitionierte Daten mit Quelldateiorganisation im Hive-Format abfragen.
- Nicht-Hive-Benennungsformat "Pathtail": Ein zweites Format, das häufig in Data Lakes gefunden wird, ähnelt dem Hive-Format, aber der Ordnername enthält nicht die Partitionsspalten.
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
Ein Beispiel finden Sie unter Externe implizite partitionierte Nicht-Hive-Stildaten abfragen.
Weitere Informationen zu Benennungsformaten finden Sie unter Informationen zu externen Tabellen mit der Partitionierung von Quelldateien.
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
können implizite partitionierte externe Tabellen wie folgt erstellt werden:
- Partitionstyp mit einer bestimmten Liste von Partitionsspalten auf "Hive" setzen
In diesem Fall ist
implicit_partition_type
aufhive
gesetzt, undimplicit_partition_columns
stellt eine Liste der Partitionsspalten bereit.Beispiel:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', 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"]}');
- Partitionstyp auf "hive" setzen, ohne eine Liste der Partitionsspalten anzugeben
In diesem Fall wird
implicit_partition_type
aufhive
gesetzt, undimplicit_partition_columns
wird nicht angegeben. Die Partitionsspalten werden automatisch erkannt, indem Sie in dem vonfile_uri_list
angegebenen Pfad nach "=" suchen. Diecolumn_name
befindet sich links von "=", und der Wert befindet sich auf der rechten Seite. Wenn einecolumn_name
im Pfad nicht gefunden wird, wird ein Fehler ausgelöst.Beispiel:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', 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"');
- Geben Sie eine Liste der Partitionsspalten an, ohne den Typ anzugeben
In diesem Fall ist
implicit_partition_type
nicht festgelegt, undimplicit_partition_columns
stellt eine Liste mit Spalten bereit.Beispiel:
DBMS_CLOUD.CREATE_EXTERNAL_TABLE ( table_name => 'mysales', credential_name => 'mycredential', 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"]}');
Weitere Informationen finden Sie unter Prozedur CREATE_EXTERNAL_TABLE.
Übergeordnetes Thema: Externe Tabellen mit impliziter Partitionierung abfragen
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:
Übergeordnetes Thema: Externe Tabellen mit impliziter Partitionierung abfragen
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:
Übergeordnetes Thema: Externe Tabellen mit impliziter Partitionierung abfragen