Esegui query su tabelle esterne con partizionamento implicito
In Autonomous Database è possibile creare tabelle esterne partizionate implicite da dati partizionati in stile Hive o da semplici dati partizionati in cartelle memorizzati nell'area di memorizzazione degli oggetti cloud.
- Informazioni sulle tabelle esterne con partizionamento implicito
In Autonomous Database utilizzare la proceduraDBMS_CLOUD.CREATE_EXTERNAL_TABLE
per creare tabelle esterne partizionate implicite dai dati partizionati in stile Hive o dai dati partizionati in cartelle semplici memorizzati nell'area di memorizzazione degli oggetti cloud. - Interrogazione di dati partizionati impliciti esterni con organizzazione file di origine formato Hive
Utilizzare la proceduraDBMS_CLOUD.CREATE_EXTERNAL_TABLE
per creare una tabella esterna partizionata implicita dai dati nell'area di memorizzazione degli oggetti generata dai dati Hive. - Esecuzione di query sui dati di stile non Hive partizionato implicito esterno
Utilizzare la proceduraDBMS_CLOUD.CREATE_EXTERNAL_TABLE
per creare una tabella esterna partizionata implicita dai dati nello storage degli oggetti generati da dati non Hive.
Argomento padre: eseguire query sui dati esterni con Autonomous Database
Informazioni sulle tabelle esterne con partizionamento implicito
In Autonomous Database utilizzare la procedura DBMS_CLOUD.CREATE_EXTERNAL_TABLE
per creare tabelle esterne partizionate implicite da dati partizionati in stile Hive o da semplici dati partizionati in cartelle memorizzati nell'area di memorizzazione degli oggetti cloud.
Utilizzare la procedura DBMS_CLOUD.CREATE_EXTERNAL_TABLE
per creare tabelle esterne partizionate implicite. Passando le opzioni appropriate a questa procedura, le partizioni vengono derivate dai dati di origine. Le tabelle esterne partizionate supportano la ricerca automatica in runtime delle colonne di partizione e dei relativi valori. La ricerca automatica in runtime delle modifiche nella struttura dell'area di memorizzazione degli oggetti di base, ad esempio l'aggiunta o la rimozione di oggetti, semplifica il processo di manutenzione eliminando la necessità di ulteriori procedure di sincronizzazione richieste da DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
. Ciò garantisce che i dati siano aggiornati in fase di esecuzione delle query.
Con il partizionamento implicito, Autonomous Database determina automaticamente le colonne su cui è "partizionata" una tabella in base alla struttura di file gerarchica dell'origine dello storage degli oggetti. Non è necessario dichiarare esplicitamente uno schema di partizionamento. Il partizionamento implicito offre vantaggi in termini di prestazioni simili a tabelle di partizione senza la necessità di definire in modo esplicito una tabella esterna partizionata mediante la procedura DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
.
Le tabelle esterne partizionate implicite supportano i seguenti stili di denominazione per gli oggetti partizionati nell'area di memorizzazione degli oggetti:
- Formato di denominazione Hive: i dati nello storage degli oggetti generati da Hive hanno il formato seguente.
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
Per un esempio, vedere Query External Implicit Partitioned Data with Hive Format Source File Organization
- Formato di denominazione "Pathtail" non Hive: un secondo formato che si trova spesso nei data lake è simile al formato hive, ma il nome della cartella non include le colonne della partizione.
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
Per un esempio, vedere Query su dati di stile non Hive partizionati impliciti esterni.
Per ulteriori informazioni sulla denominazione dei formati, vedere Informazioni sulle tabelle esterne con il partizionamento di file di origine.
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
consente di creare tabelle esterne partizionate implicite nei modi riportati di seguito.
- Impostare il tipo di partizione su hive con un determinato elenco di colonne di partizione
In questo caso,
implicit_partition_type
è impostato suhive
eimplicit_partition_columns
fornisce una lista di colonne di partizione.Ad esempio:
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"]}');
- Impostare il tipo di partizione su hive senza fornire un elenco di colonne di partizione
In questo caso,
implicit_partition_type
viene impostato suhive
eimplicit_partition_columns
non viene fornito. Le colonne della partizione vengono rilevate automaticamente cercando '=' nel percorso specificato dafile_uri_list
. Il valorecolumn_name
si trova a sinistra di '=' e si trova sul lato destro. Se nel percorso non viene trovato un valorecolumn_name
, viene restituito un errore.Ad esempio:
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"');
- Fornire una lista di colonne di partizione senza specificare il tipo
In questo caso,
implicit_partition_type
non è impostato eimplicit_partition_columns
fornisce un elenco di colonne.Ad esempio:
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"]}');
Per ulteriori informazioni, vedere CREATE_EXTERNAL_TABLE Procedura.
Esegui query su dati partizionati impliciti esterni con organizzazione file di origine formato Hive
Utilizzare la procedura DBMS_CLOUD.CREATE_EXTERNAL_TABLE
per creare una tabella esterna partizionata implicita dai dati nell'area di memorizzazione degli oggetti generata dai dati Hive.
I file di origine di esempio riportati nell'esempio seguente utilizzano questo formato di denominazione:
OBJBUCKET/<table>/<partcol1>=<value1>/<partcol2>=<value2>/file.parquet
Considerare i seguenti file di origine di esempio:
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
Per creare una tabella esterna partizionata implicita con i dati memorizzati in questo formato Hive di esempio, effettuare le operazioni riportate di seguito.
Interrogazione di dati di stile esterni impliciti non Hive partizionati
Utilizzare la procedura DBMS_CLOUD.CREATE_EXTERNAL_TABLE
per creare una tabella esterna partizionata implicita dai dati nello storage degli oggetti generati da dati non Hive.
I file di origine di esempio riportati nell'esempio seguente utilizzano questo formato di denominazione:
OBJBUCKET/<table>/<value1>/<value2>/file.parquet
Considerare i seguenti file di origine di esempio:
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
Per creare una tabella esterna partizionata implicita con i dati memorizzati in questo formato Hive di esempio, effettuare le operazioni riportate di seguito.