Esegui query su dati partizionati esterni (con clausola di partizionamento)

Se si desidera eseguire una query su più file di dati nell'area di memorizzazione degli oggetti come una singola tabella esterna e i file possono essere rappresentati come più partizioni logiche, si consiglia di utilizzare una tabella partizionata esterna. L'utilizzo di una tabella partizionata esterna preserva il partizionamento logico dei file di dati per l'accesso alle query. Per creare una tabella partizionata esterna, attenersi alla procedura DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE.

Esistono due modi per creare una tabella partizionata esterna in Autonomous Database:

  • La prima versione è per. Per informazioni su questo tipo di utilizzo della tabella partizionata esterna, vedere Query External Partitioned Data with Hive Format Source File Organization.

  • La seconda versione è per. Quando si crea una tabella esterna partizionata in questo modo, si include una clausola di partizionamento nel parametro partitioning_clause. La clausola di partizionamento inclusa dipende dai file di dati nel cloud e dal tipo di partizionamento utilizzato. Questa sezione descrive questo tipo di uso della tabella partizionata esterna.

  1. Memorizzare le credenziali dell'area di memorizzazione degli oggetti utilizzando la procedura DBMS_CLOUD.CREATE_CREDENTIAL.

    Ad esempio:

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

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione relativa all'uso del principal delle risorse per accedere alle risorse di Oracle Cloud Infrastructure.

    Questa operazione memorizza le credenziali nel database in formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale. Tenere presente che questo passo è necessario una sola volta a meno che le credenziali dell'area di memorizzazione degli oggetti non vengano modificate. Dopo aver memorizzato le credenziali, è possibile utilizzare lo stesso nome di credenziale per creare tabelle esterne.

    Vedere CREATE_CREDENTIAL Procedura per informazioni sui parametri username e password per diversi servizi di storage degli oggetti.

  2. Creare una tabella partizionata esterna nella parte superiore dei file di origine utilizzando la procedura DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE.

    La procedura DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE supporta i file partizionati esterni nei servizi di storage degli oggetti cloud supportati. La credenziale è una proprietà a livello di tabella, pertanto i file esterni devono trovarsi nella stessa area di memorizzazione degli oggetti.

    Ad esempio:

    BEGIN
      DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
          table_name =>'PET1',  
          credential_name =>'DEF_CRED_NAME',
          format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),  
          column_list => 'col1 number, col2 number, col3 number',
          partitioning_clause => 'partition by range (col1)
             (partition p1 values less than (1000) location
                 ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_11.txt''),
              partition p2 values less than (2000) location 
                 ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_21.txt''),
              partition p3 values less than (3000) location 
                 ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_31.txt'') )'
         );
    END;
    / 
    

    Di seguito sono riportati i parametri.

    • table_name: è il nome della tabella esterna.

    • credential_name: è il nome della credenziale creata nel passo precedente.

    • partitioning_clause: è la clausola di partizionamento completa, incluse le informazioni sulla posizione per le singole partizioni.

    • format: definisce le opzioni che è possibile specificare per descrivere il formato del file di origine. format: definisce le opzioni che è possibile specificare per descrivere il formato del file di origine.

      Se i dati nei file di origine sono cifrati, decifrare i dati specificando il parametro format con l'opzione encryption. Per ulteriori informazioni sulla decifrazione dei dati, vedere Decifra dati durante l'importazione dallo storage degli oggetti.

    • column_list: è una lista delimitata da virgole delle definizioni di colonna nei file di origine.

    In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    È ora possibile eseguire le query nella tabella partizionata esterna creata nel passo precedente. Autonomous Database sfrutta le informazioni di partizionamento della tabella partizionata esterna, assicurandosi che la query acceda solo ai file di dati pertinenti nell'area di memorizzazione degli oggetti. Ad esempio, la query seguente legge solo i file di dati dalla partizione P1:

    SELECT * FROM pet1 WHERE col1 < 750;

    Le tabelle partizionate esterne create con DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE includono due colonne invisibili file$path e file$name. Queste colonne consentono di identificare il file da cui proviene un record. Per ulteriori informazioni, vedere Colonne metadati tabella esterna.

    Se nei file di origine sono presenti righe che non corrispondono alle opzioni di formato specificate, la query segnala un errore. Per eliminare questi errori, è possibile utilizzare i parametri DBMS_CLOUD, ad esempio rejectlimit. In alternativa, è anche possibile convalidare la tabella partizionata esterna creata per visualizzare i messaggi di errore e le righe rifiutate in modo da poter modificare le opzioni di formato di conseguenza. Per ulteriori informazioni, vedere Convalida dati esterni e Convalida dati partizionati esterni.

    Per informazioni dettagliate sui parametri, vedere CREATE_EXTERNAL_PART_TABLE Procedura.

    Per ulteriori informazioni sui servizi di storage degli oggetti cloud supportati, vedere DBMS_CLOUD Formati URI.