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 => 'sales_sample',
CREDENTIAL_NAME => 'DEF_CRED_NAME',
FILE_URI_LIST => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/moviestream_landing/o/sales_sample/*.parquet',
FORMAT => '{"type":"parquet", "schema": "first","partition_columns":[{"name":"month","type":"varchar2(100)"}]}');
END;
/
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 dentro do arquivo de dados e as derivadas do nome do objeto (dos nomes no caminho do arquivo).
O column_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.
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.
Consulte DBMS_CLOUD Opções de Formato de Pacote para obter mais informações.
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.
A chamada DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
resultaria na seguinte definição de tabela:
CREATE TABLE "ADMIN"."SALES_SAMPLE"
( "DAY_ID" TIMESTAMP (6),
"GENRE_ID" NUMBER(19,0),
"MOVIE_ID" NUMBER(19,0),
"CUST_ID" NUMBER(19,0),
"APP" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"DEVICE" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"OS" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"PAYMENT_METHOD" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"LIST_PRICE" BINARY_DOUBLE,
"DISCOUNT_TYPE" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"DISCOUNT_PERCENT" BINARY_DOUBLE,
"ACTUAL_PRICE" BINARY_DOUBLE,
"MONTH" VARCHAR2(100 BYTE) COLLATE "USING_NLS_COMP"
) DEFAULT COLLATION "USING_NLS_COMP"
ORGANIZATION EXTERNAL
( TYPE ORACLE_BIGDATA
DEFAULT DIRECTORY "DATA_PUMP_DIR"
ACCESS PARAMETERS
( com.oracle.bigdata.fileformat=parquet
com.oracle.bigdata.filename.columns=["month"]
com.oracle.bigdata.file_uri_list="https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/moviestream_landing/o/sales_sample/*.parquet"
com.oracle.bigdata.credential.schema="ADMIN"
com.oracle.bigdata.credential.name=CRED_OCI
com.oracle.bigdata.trimspaces=notrim
)
)
REJECT LIMIT 0
PARTITION BY LIST ("MONTH")
(PARTITION "P1" VALUES (('2019-01'))
LOCATION
( 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/moviestream_landing/o/sales_sample/month=2019-01/*.parquet'
),
PARTITION "P2" VALUES (('2019-02'))
LOCATION
( 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/moviestream_landing/o/sales_sample/month=2019-02/*.parquet'
))
PARALLEL ;
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.