La procédure DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
prend en charge les fichiers partitionnés externes dans les services de stockage d'objets cloud pris en charge. Les informations d'identification sont des propriétés de niveau table. Les fichiers externes doivent donc se trouver dans la même banque d'objets cloud.
Par exemple :
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;
/
Les paramètres sont les suivants :
-
table_name
: nom de la table externe.
-
credential_name
: nom des informations d'identification créées à l'étape précédente.
-
file_uri_list
: liste des URI du fichier source, séparés par des virgules. Deux options sont disponibles pour cette liste :
-
Indiquez une liste d'URI de fichier séparés par des virgules sans caractère générique.
-
Spécifiez un URI de fichier unique avec des caractères génériques, où les caractères génériques ne peuvent être qu'après la dernière barre oblique "/". Le caractère "*" peut être utilisé comme caractère générique pour représenter plusieurs caractères. Le caractère "?" peut être utilisé comme caractère générique pour représenter un seul caractère.
-
column_list
est une liste délimitée par des virgule de noms de colonne et de type de données pour une table externe. La liste inclut les colonnes du fichier de données et celles dérivées du nom de l'objet (à partir des noms figurant dans le chemin du fichier).
column_list
n'est pas requis lorsque les fichiers de données sont des fichiers structurés (Parquet, Avro ou ORC).
-
format
: définit les options que vous pouvez indiquer pour décrire le format du fichier source. Le paramètre partition_columns
format
indique les noms des colonnes de partition.
Si les données du fichier source sont cryptées, décryptez-les en spécifiant l'option de format encryption
. Pour plus d'informations sur le décryptage des données, reportez-vous à Décryptage des données lors de l'import à partir d'Object Storage.
Pour plus d'informations, reportez-vous à DBMS_CLOUD Options de format de package.
Dans cet exemple, namespace-string
est l'espace de noms d'objet Oracle Cloud Infrastructure et bucketname
est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.
L'appel DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
génère la définition de table suivante :
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 ;
Pour plus d'informations sur les paramètres, reportez-vous à Procédure CREATE_EXTERNAL_PART_TABLE.
Pour plus d'informations sur les services de stockage d'objets cloud pris en charge, reportez-vous à Formats d'URI DBMS_CLOUD.