O procedimento DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
suporta arquivos particionados externos nos serviços de armazenamento de objetos na nuvem suportados. A credencial é uma propriedade de nível de tabela; portanto, os arquivos externos devem estar todos no mesmo armazenamento de objetos da 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 (e, portanto, todos os arquivos devem ter a mesma forma). A lista de colunas gerada 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 de URIs de arquivos de origem. Há duas opções para esta lista:
-
Especifique uma lista delimitada por vírgulas de URIs de arquivos individuais sem curinga.
-
Especifique um único URI de arquivo 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 por vírgula de nomes de coluna 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 é necessário quando os arquivos de dados são arquivos 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 é necessário quando os arquivos de dados são arquivos 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 Opções de Formato de Pacote para obter mais informações.
Se os dados em seu arquivo de origem forem criptografados, decriptografe os dados 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 como decriptografar dados.
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.
Consulte CREATE_EXTERNAL_PART_TABLE Procedure para obter 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.
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 externa 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 Externos para mais informações.