Consultar Dados Particionados Híbridos

Se você quiser consultar dados internos e vários arquivos de dados no Armazenamento de Objetos como uma única tabela lógica, poderá usar uma tabela particionada híbrida para representar os dados como um único objeto. Utilize o procedimento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE para criar uma tabela híbrida particionada.

Se seus dados, internos ou externos, puderem ser representados em granularidade mais fina como várias partições lógicas, é altamente recomendável criar uma tabela particionada híbrida com várias partições internas e externas, preservando o particionamento lógico de seus dados para acesso à consulta.

Ao criar uma tabela particionada híbrida, você inclui uma cláusula de particionamento na instrução DBMS_CLOUD.CREATE_HYBRID_PART_TABLE. A cláusula de particionamento que você inclui depende de seus arquivos de dados e do tipo de particionamento que você usa. Consulte Criando Tabelas Particionadas Híbridas para obter mais informações.

  1. Armazene suas credenciais do armazenamento de objetos usando o procedimento DBMS_CLOUD.CREATE_CREDENTIAL.

    Por exemplo:

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

    Não será necessário criar uma credencial para acessar o Oracle Cloud Infrastructure Object Store se você ativar as credenciais do controlador de recursos. Consulte Usar o Controlador de Recursos para Acessar Recursos da Oracle Cloud Infrastructure para obter mais informações.

    Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial. Observe que essa etapa é obrigatória apenas uma vez, a menos que as credenciais do armazenamento de objetos sejam alteradas. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para criar tabelas particionadas híbridas.

    Consulte Procedimento CREATE_CREDENTIAL para obter informações sobre os parâmetros username e password para diferentes serviços de armazenamento de objetos.

  2. Crie uma tabela híbrida particionada na parte superior de seus arquivos de origem usando o procedimento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE.

    O procedimento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE suporta arquivos particionados externos nos serviços de armazenamento de objetos na nuvem suportados. A credencial é uma propriedade em nível de tabela; portanto, os arquivos externos devem estar no mesmo armazenamento de objetos.

    Por exemplo:

    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;
    /
    

    Os parâmetros são:

    • table_name: é o nome da tabela particionada híbrida.

    • credential_name: é o nome da credencial criada na etapa anterior.

    • partitioning_clause: é a cláusula de particionamento completa, incluindo as informações de localização para partições individuais.

    • format: define as opções que você pode especificar para descrever o formato do arquivo de origem.

      Se os dados em seus arquivos de origem forem criptografados, decriptografe os dados especificando o parâmetro format com a opção encryption. Consulte Descriptografar Dados Durante a Importação do Serviço Object Storage para obter mais informações sobre como decriptografar dados.

    • column_list: é uma lista delimitada por vírgulas das definições de coluna nos arquivos de origem.

    Neste exemplo, namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e bucketname é o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

    Agora você pode executar consultas na tabela particionada híbrida que criou na etapa anterior. O seu Autonomous Database aproveita as informações de particionamento da sua tabela particionada híbrida, garantindo que a consulta acesse apenas arquivos de dados relevantes no Object Store. Por exemplo, a consulta a seguir só lê arquivos de dados da partição P1:

    SELECT * FROM hpt1 WHERE col1 < 750;

    As tabelas particionadas híbridas que você cria com DBMS_CLOUD.CREATE_HYBRID_PART_TABLE incluem duas colunas invisíveis file$path e file$name. Essas colunas ajudam a identificar de qual arquivo um registro está vindo. Consulte Colunas de Metadados da Tabela Externa para obter mais informações.

    Se houver linhas nos arquivos de origem que não correspondam às opções de formato especificadas, a consulta reportará um erro. Você pode usar parâmetros DBMS_CLOUD, como rejectlimit, para suprimir esses erros. Como alternativa, você também pode validar a tabela particionada híbrida que você criou para ver as mensagens de erro e as linhas rejeitadas, para que você possa alterar suas opções do formato adequadamente. Consulte Validar Dados Externos e Validar Dados Particionados Híbridos para mais informações.

    Consulte CREATE_HYBRID_PART_TABLE Procedure informações detalhadas sobre os parâmetros.

    Consulte DBMS_CLOUD Formatos de URI para obter mais informações sobre os serviços de armazenamento de objetos na nuvem suportados.