Dénomination de fichier pour la sortie texte (CSV, JSON, Parquet ou XML)

Décrit l'affectation de noms aux fichiers de sortie à l'aide de DBMS_CLOUD.EXPORT_DATA avec une sortie de fichier texte CSV, JSON, Parquet ou XML.

DBMS_CLOUD.EXPORT_DATA effectue la requête indiquée avec le paramètre query et envoie les résultats vers des fichiers texte dans le bucket de la banque d'objets cloud ou vers un répertoire. Le format de sortie dépend du paramètre format type que vous indiquez (un format CSV, JSON, Parquet ou XML).

Pour accélérer la procédure et générer la sortie le plus rapidement possible, DBMS_CLOUD.EXPORT_DATA divise son travail. Cela signifie que, en fonction des ressources système, lorsque vous exécutez DBMS_CLOUD.EXPORT_DATA, la procédure crée plusieurs fichiers de sortie dans le bucket de la banque d'objets cloud ou dans le répertoire.

Le format de chaque fichier généré est le suivant :

[FileNamePrefix | client_info_module_action]_sequenceNum_timestamp.format_extension.[compression_extension]

  • FileNamePrefix : (facultatif) si une valeur FileNamePrefix est fournie, DBMS_CLOUD.EXPORT_DATA utilise le préfixe de nom de fichier pour générer les noms de fichier des résultats. Le paramètre FileNamePrefix est indiqué à l'aide du texte fourni après le nom du bucket ou du répertoire dans la valeur du paramètre file_uri_list.

    Vous ne pouvez pas fournir plusieurs valeurs pour FileNamePrefix dans file_uri_list.

  • client_info_module_action: If a file name prefix is not supplied with the file_uri_list parameter, DBMS_CLOUD.EXPORT_DATA uses the combination of client_info, application module and action as the file name prefix (when this information is available). La procédure obtient ces noms à partir des informations de l'application pour la session de base de données qui exécute la requête. Reportez-vous à DBMS_APPLICATION_INFO pour plus d'informations sur client_info, le nom de module et le nom d'action.

    Si aucun préfixe de nom de fichier n'est fourni avec file_uri_list et que les attributs de session de base de données ne sont pas disponibles, DBMS_CLOUD.EXPORT_DATA utilise le préfixe de nom de fichier "data".

  • sequenceNum : numéro de séquence associé à la requête DBMS_CLOUD.EXPORT_DATA. En fonction de la requête, du service de base de données et du nombre d'OCPU (si votre base de données utilise des OCPU), il existe un ou plusieurs sequenceNum. En outre, selon la taille des résultats, il existe un ou plusieurs fichiers de sortie pour chaque fichier sequenceNum.

    Pour plus d'informations sur les services de base de données, reportez-vous à Gestion de la simultanéité et des priorités sur Autonomous Database.

  • horodatage : horodatage du téléchargement du fichier.

  • format_extension : la valeur par défaut dépend de la valeur format type :

    • Format CSV : .csv
    • Format JSON : .json
    • Format PARQUET .parquet
    • Format XML : .xml

    Pour plus d'informations, reportez-vous à la description de l'option format fileextension dans DBMS_CLOUD Package Format Options for EXPORT_DATA.

  • compression_extension : lorsque vous incluez le paramètre format avec l'option compression avec la valeur gzip, il s'agit de "gz".

    Lorsque la valeur format type est parquet, la valeur compression snappy est également prise en charge et est la valeur par défaut.

Par exemple, le préfixe de nom de fichier dans la procédure DBMS_CLOUD.EXPORT_DATA suivante est indiqué dans le paramètre file_uri_list, en tant que dept_export. L'exemple génère la sortie vers la banque d'objets fournie dans le format spécifié.

BEGIN
  DBMS_CLOUD.EXPORT_DATA(
    credential_name => 'DEF_CRED_NAME',
    file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/dept_export',
    query           => 'SELECT * FROM DEPT',
    format          => JSON_OBJECT('type' value 'json'));
END;
/

Lorsque vous indiquez un préfixe de nom de fichier, les fichiers de sortie générés incluent le préfixe de nom de fichier, comme suit :

dept_export_1_20210809T173033Z.json
dept_export_2_20210809T173034Z.json
dept_export_3_20210809T173041Z.json
dept_export_4_20210809T173035Z.json

Le nombre de fichiers de sortie générés dépend de la taille des résultats, du service de base de données et du nombre d'ECPU (OCPU si votre base de données utilise des OCPU) dans l'instance Autonomous Database.

Dans l'exemple suivant, le paramètre file_uri_list n'inclut pas de préfixe de nom de fichier et le paramètre compression est fourni, avec la valeur gzip :

BEGIN
  DBMS_CLOUD.EXPORT_DATA(
    credential_name => 'DEF_CRED_NAME',
    file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/',
    query           => 'SELECT * FROM DEPT',
    format          => json_object('type' value 'json', 'compression' value 'gzip'));
END;
/

Lorsqu'un préfixe de nom de fichier ne figure pas dans le paramètre file_uri_list, DBMS_CLOUD.EXPORT_DATA utilise un préfixe de nom de fichier de la forme suivante : client_info_module_action. Dans cet exemple, les fichiers de sortie générés incluent le préfixe de nom de fichier fourni par DBMS_CLOUD.EXPORT_DATA et les fichiers sont compressés avec gzip et l'extension de fichier .gz est ajoutée, comme suit :

Client1_Module1_Action1_1_20210809T173033Z.json.gz
Client1_Module1_Action1_2_20210809T173034Z.json.gz
Client1_Module1_Action1_3_20210809T173041Z.json.gz
Client1_Module1_Action1_4_20210809T173035Z.json.gz

Si les informations de session client_info_module_action ne sont pas disponibles lorsque vous exécutez DBMS_CLOUD.EXPORT_DATA, le préfixe de nom de fichier est défini sur data. Par exemple :

data_1_20210809T173033Z.json.gz
data_2_20210809T173034Z.json.gz
data_3_20210809T173041Z.json.gz
data_4_20210809T173035Z.json.gz

Par exemple, le préfixe de nom de fichier dans la procédure DBMS_CLOUD.EXPORT_DATA suivante est indiqué dans le paramètre file_uri_list, en tant que dept_export. L'exemple génère la sortie vers le répertoire fourni dans le format spécifié.

BEGIN
  DBMS_CLOUD.EXPORT_DATA(
    file_uri_list   => 'DATA_PUMP_DIR:sales.json',
    query           => 'SELECT * FROM SALES',
    format          => JSON_OBJECT('type' value 'json'));
END;
/

Lorsque vous indiquez un préfixe de nom de fichier, le fichier de sortie généré inclut le préfixe de nom de fichier, comme suit :

sales_1_20230705T124523275915Z.csv

Remarques concernant la dénomination des fichiers avec DBMS_CLOUD.EXPORT_DATA :

  • DBMS_CLOUD.EXPORT_DATA ne crée pas de buckets ou de répertoires.

  • Le nombre de fichiers générés par DBMS_CLOUD.EXPORT_DATA est déterminé par le nombre d'OCPU (si votre base de données utilise des OCPU), le service de base de données et la taille des données de résultat.

  • Ce qui suit s'applique lorsque vous indiquez un nom d'objet de répertoire dans le paramètre file_uri_list :

    • Le répertoire fourni doit exister et vous devez disposer d'un accès WRITE au répertoire.

    • Le nom de répertoire est sensible à la casse lorsqu'il est placé entre guillemets doubles.

    • Le paramètre de nom d'informations d'identification ne doit pas être fourni.

  • Par défaut, lorsqu'un fichier généré contient 10 Mo de données, un nouveau fichier de sortie est créé pour une sortie CSV, JSON ou XML. Toutefois, si vous disposez de moins de 10 Mo de données de résultat, vous pouvez disposer de plusieurs fichiers de sortie, en fonction du service de base de données et du nombre d'OCPU (si votre base de données utilise des OCPU) pour l'instance Autonomous Database.

    La taille par défaut du bloc du fichier de sortie est de 10 Mo pour CSV, JSON ou XML. Vous pouvez modifier cette valeur avec le paramètre format, option maxfilesize. Pour plus d'informations, reportez-vous à DBMS_CLOUD Options de format de package pour EXPORT_DATA.

  • Pour la sortie Parquet, chaque fichier généré est inférieur à 128 Mo et plusieurs fichiers de sortie peuvent être générés. Toutefois, si vous disposez de moins de 128 Mo de données de résultat, vous pouvez disposer de plusieurs fichiers de sortie en fonction du service de base de données et du nombre d'OCPU (si votre base de données utilise des OCPU) pour l'instance Autonomous Database.

    L'option maxfilesize du paramètre format ne s'applique pas aux fichiers Parquet.