Esegui query su dati partizionati ibridi

Se si desidera eseguire query su dati interni e su più file di dati nell'area di memorizzazione degli oggetti come singola tabella logica, è possibile utilizzare una tabella ibrida partizionata per rappresentare i dati come singolo oggetto. Utilizzare la procedura DBMS_CLOUD.CREATE_HYBRID_PART_TABLE per creare una tabella con partizionamento ibrido.

Se i dati, interni o esterni, possono essere rappresentati in una granularità più precisa come più partizioni logiche, si consiglia vivamente di creare una tabella ibrida partizionata con più partizioni interne ed esterne, preservando il partizionamento logico dei dati per l'accesso alle query.

Quando si crea una tabella con partizionamento ibrido, si include una clausola di partizionamento nell'istruzione DBMS_CLOUD.CREATE_HYBRID_PART_TABLE. La clausola di partizionamento inclusa dipende dai file di dati e dal tipo di partizionamento utilizzato. Per ulteriori informazioni, vedere Creazione di tabelle partizionate ibride.

  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 con partizionamento ibrido.

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

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

    La procedura DBMS_CLOUD.CREATE_HYBRID_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_HYBRID_PART_TABLE(
          table_name =>'HPT1',  
          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) external location
                  ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_11.txt'') ,
                partition p2 values less than (2000) external location
                  ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_21.txt'') ,
                partition p3 values less than (3000) )'
         );
    END;
    /
    

    Di seguito sono riportati i parametri.

    • table_name: è il nome della tabella con partizionamento ibrido.

    • 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.

      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 query sulla tabella con partizionamento ibrido creata nel passo precedente. Autonomous Database sfrutta le informazioni di partizionamento della tabella partizionata ibrida, assicurando 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 hpt1 WHERE col1 < 750;

    Le tabelle con partizionamento ibrido create con DBMS_CLOUD.CREATE_HYBRID_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 ibrida partizionata 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 ibridi.

    Vedere CREATE_HYBRID_PART_TABLE Procedura per informazioni dettagliate sui parametri.

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