O procedimento DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
suporta arquivos particionados externos nos serviços suportados de armazenamento de objetos na nuvem. A credencial é uma propriedade de nível de tabela; portanto, todos os arquivos externos devem estar no mesmo armazenamento de objetos na nuvem.
Por exemplo:
BEGIN DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/sales/*.parquet',
format =>
json_object('type' value 'parquet', 'schema' value 'first',
'partition_columns' value
json_array(
json_object('name' value 'country', 'type' value 'varchar2(100)'),
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'varchar2(2)')
)
)
);
END;
/
Os parâmetros DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
para arquivos de dados estruturados, como para um arquivo de dados Parquet, não exigem os parâmetros column_list
ou field_list
. Os nomes de coluna e os tipos de dados são derivados para as colunas do primeiro arquivo parquet que o procedimento verifica (portanto, todos os arquivos devem ter a mesma forma). A lista de colunas geradas inclui as colunas derivadas do nome do objeto e essas colunas têm os tipos de dados especificados com o parâmetro partition_columns
format
.
Os parâmetros são:
-
table_name
: é o nome da tabela externa.
-
credential_name
: é o nome da credencial criada na etapa anterior.
-
file_uri_list
: é uma lista delimitada por vírgulas dos URIs de arquivo de origem. Há duas opções para essa lista:
-
Especifique uma lista delimitada por vírgulas de URIs de arquivos individuais sem curingidas.
-
Especifique um URI de arquivo único com curingas, em que os curingas só podem ser posteriores à última barra "/". O caractere "*" pode ser usado como curinga para vários caracteres, o caractere "?" pode ser usado como curinga para um único caractere.
-
column_list
: é uma lista delimitada de nomes de colunas e tipos de dados para a tabela externa. A lista inclui as colunas que estão dentro do arquivo, bem como as derivadas do nome do objeto.
O column_list
não é obrigatório quando os arquivos de dados são estruturados (Parquet, Avro ou ORC).
-
field_list
: Identifica os campos nos arquivos de origem e seus tipos de dados. O valor padrão é NULL
, o que significa que os campos e seus tipos de dados são determinados pelo parâmetro column_list
.
O field_list
não é obrigatório quando os arquivos de dados são estruturados (Parquet, Avro ou ORC).
-
format
: define as opções que você pode especificar para descrever o formato do arquivo de origem. O parâmetro partition_columns
format
especifica os nomes das colunas de partição. Consulte DBMS_CLOUD Package Format Options para obter mais informações.
Se os dados em seu arquivo de origem forem criptografados, decriptografe-os especificando a opção de formato encryption
. Consulte Descriptografar Dados Durante a Importação do Serviço Object Storage para obter mais informações sobre decriptografia de dados.
Neste exemplo, namespace-string
corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname
corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.
Consulte Procedimento CREATE_EXTERNAL_PART_TABLE para obter informações detalhadas sobre os parâmetros.
Consulte DBMS_CLOUD Formatos de URI para obter mais informações sobre os serviços suportados de armazenamento de objetos da nuvem.
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 os parâmetros DBMS_CLOUD
, como rejectlimit
, para suprimir esses erros. Como alternativa, você também pode validar a tabela particionada externa criada para ver as mensagens de erro e as linhas rejeitadas para que possa alterar suas opções de formato adequadamente. Consulte Validar Dados Externos e Validar Dados Partidos Externos para obter mais informações.