Formats d'URI DBMS_CLOUD

Décrit le format des URI de fichier source dans les opérations avec DBMS_CLOUD. Le format dépend du service de stockage d'objets que vous utilisez.

DBMS_CLOUD garantit une communication sécurisée et tout URI que vous spécifiez doit utiliser HTTPS, avec https:// comme préfixe pour l'URI.

Format d'URI natif d'Oracle Cloud Infrastructure Object Storage

Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des points d'extrémité dédiés au stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du service de stockage d'objets.

https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename
Note

Les URL de point d'extrémité dédié au magasin d'objets OCI ne sont prises en charge que dans les domaines commerciaux (OC1).

Si vos fichiers sources résident dans le service Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :

https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filename

Par exemple, dans le domaine commercial (OC1), l'URI natif du fichier channels.txt dans le seau bucketname du centre de données Phoenix est :

https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txt

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Vous pouvez fournir un URI avec des variables de paramètre fictif prédéfinies. Lorsque la demande est envoyée, ces variables sont résolues de façon transparente et remplacées par les valeurs réelles correspondantes. Voici la liste des paramètres fictifs pris en charge dans les sous-programmes d'ensemble DBMS_CLOUD :
  • my$home_region : Spécifie la région principale de votre location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$region : Spécifie la région Oracle Cloud Infrastructure (OCI) de votre base de données d'IA autonome.

    La variable de substitution my$region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$cloud_domain : Spécifie le nom de domaine Oracle Cloud Infrastructure (OCI) pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$namespace : Spécifie l'espace de noms du service de stockage d'objets pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$namespace est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$compartment : Spécifie l'OCID de votre compartiment.

    La variable de substitution my$compartment est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$tenancy : Spécifie l'OCID de votre location.

    La variable de substitution my$tenancy est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

Exemple :
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'

Vous pouvez trouver l'URI dans le menu de points de suspension de droite d'Oracle Cloud Infrastructure Object Storage "Détails de l'objet" dans le magasin d'objets :

  1. Ouvrez la console Oracle Cloud Infrastructure en cliquant sur icône de navigation à côté d'Oracle Cloud.
  2. Dans le menu de navigation de gauche d'Oracle Cloud Infrastructure, cliquez sur Infrastructure de base. Sous Stockage d'objets, cliquez sur Stockage d'objets.
  3. Sous Portée de la liste, sélectionnez un compartiment.
  4. Dans la colonne Nom, sélectionnez un seau.
  5. Dans la zone Objets, cliquez sur Voir les détails de l'objet.
  6. Dans la page Détails de l'objet, le champ Chemin de l'URL (URI) affiche l'URI permettant d'accéder à l'objet.
Note

Les fichiers sources doivent être stockés dans un compartiment de niveau de stockage d'objets. La base de données autonome d'IA ne prend pas en charge les compartiments du niveau de stockage d'archives. Voir Aperçu du stockage d'objets pour plus d'informations.

Format d'URI Swift d'Oracle Cloud Infrastructure Object Storage

Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des points d'extrémité dédiés au stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du service de stockage d'objets.

https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1/namespace-string/bucket/filename
Note

Les URL de point d'extrémité dédié au magasin d'objets OCI ne sont prises en charge que dans les domaines commerciaux (OC1).

Si vos fichiers sources résident dans le service Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :

https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename

Par exemple, dans le domaine commercial (OC1), l'URI Swift pour le fichier channels.txt dans le seau bucketname du centre de données Phoenix est :

https://namespace-string.swiftobjectstorage.us-phoenix-1.oci.customer-oci.com/v1/namespace-string/bucketname/channels.txt

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Note

Les fichiers sources doivent être stockés dans un compartiment de niveau de stockage d'objets. La base de données autonome d'IA ne prend pas en charge les compartiments du niveau de stockage d'archives. Voir Aperçu du stockage d'objets pour plus d'informations.

L'URI que vous fournissez peut également contenir des variables de paramètre fictif prédéfinies. Lorsque la demande est envoyée, ces variables sont remplacées par leurs valeurs réelles correspondantes. Voici la liste des paramètres fictifs pris en charge dans Autonomous AI Database :
  • my$home_region : Spécifie la région principale de votre location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$region : Spécifie la région Oracle Cloud Infrastructure (OCI) de votre base de données d'IA autonome.

    La variable de substitution my$region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$cloud_domain : Spécifie le nom de domaine Oracle Cloud Infrastructure (OCI) pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$namespace : Spécifie l'espace de noms du service de stockage d'objets pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$namespace est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$compartment : Spécifie l'OCID de votre compartiment.

    La variable de substitution my$compartment est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$tenancy : Spécifie l'OCID de votre location.

    La variable de substitution my$tenancy est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

Format d'URI d'Oracle Cloud Infrastructure Object Storage à l'aide d'une URL de demande préauthentifiée

Si vos fichiers sources résident sur le service Oracle Cloud Infrastructure Object Storage, vous pouvez utiliser les URI préauthentifiés d'Oracle Cloud Infrastructure. Lorsque vous créez une demande préauthentifiée, une URL unique est générée. Vous pouvez ensuite fournir l'URL unique aux utilisateurs de votre organisation, partenaires ou tiers pour accéder à la cible de ressource de stockage d'objets identifiée dans la demande préauthentifiée.

Note

Évaluez attentivement les besoins de l'entreprise et les ramifications de sécurité de l'accès préauthentifié. Lorsque vous créez l'URL de la demande préauthentifiée, notez Expiration et le type d'accès pour vous assurer qu'ils sont appropriés pour votre utilisation.

Une URL de demande préauthentifiée permet à toute personne qui en dispose d'accéder aux cibles identifiées dans la demande tant que celle-ci est active. En plus de tenir compte des besoins opérationnels de l'accès préauthentifié, il est tout aussi important de gérer sa distribution.

Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des points d'extrémité dédiés au stockage d'objets. Pour plus d'informations, voir Points d'extrémité dédiés du service de stockage d'objets.

https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename
Note

Les URL de point d'extrémité dédié au magasin d'objets OCI ne sont prises en charge que dans les domaines commerciaux (OC1).

Si vos fichiers sources résident dans le service Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :

https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

Par exemple, dans le domaine commercial (OC1), un exemple d'URI préauthentifié pour le fichier channels.txt dans le seau bucketname du centre de données Phoenix est :

https://namespace-string.objectstorage.us-phoenix-1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txt

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Vous pouvez utiliser une URL préauthentifiée dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers du magasin d'objets Oracle Cloud Infrastructure, sans avoir à créer de données d'identification. Vous devez spécifier le paramètre credential_name en tant que NULL ou ne pas fournir de paramètre credential_name.

Exemple :

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/p/unique-pre-authenticated-string/n/namespace-string/b/bucketname/o/channels.txt',
     format => json_object('delimiter' value ',') );
END;
/
Note

Une liste d'URL mixtes est valide. Si la liste d'URL contient à la fois des URL préauthentifiées et des URL nécessitant une authentification, DBMS_CLOUD utilise la valeur credential_name spécifiée pour accéder aux URL nécessitant une authentification et, pour les URL préauthentifiées, la valeur credential_name spécifiée est ignorée.

Pour plus d'informations, voir Utilisation des demandes préauthentifiées.

Vous pouvez fournir un URI avec des variables de paramètre fictif prédéfinies. Lorsque la demande est envoyée, ces variables sont remplacées par leurs valeurs réelles correspondantes. Voici la liste des paramètres fictifs pris en charge dans les sous-programmes d'ensemble DBMS_CLOUD :
  • my$home_region : Spécifie la région principale de votre location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$region : Spécifie la région Oracle Cloud Infrastructure (OCI) de votre base de données d'IA autonome.

    La variable de substitution my$region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$cloud_domain : Spécifie le nom de domaine Oracle Cloud Infrastructure (OCI) pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$namespace : Spécifie l'espace de noms du service de stockage d'objets pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$namespace est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$compartment : Spécifie l'OCID de votre compartiment.

    La variable de substitution my$compartment est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$tenancy : Spécifie l'OCID de votre location.

    La variable de substitution my$tenancy est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

Exemple :
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'

Format d'URI à l'aide d'une URL publique

Si vos fichiers sources résident dans un magasin d'objets qui fournit des URL publiques, vous pouvez utiliser des URL publiques avec des procédures DBMS_CLOUD. Public signifie que le service de stockage d'objets prend en charge l'accès anonyme et non authentifié aux fichiers du magasin d'objets. Consultez votre service de stockage d'objets en nuage pour plus de détails sur la façon de rendre un objet public dans un magasin d'objets pris en charge.

Note

Évaluez soigneusement les besoins d'affaires et les ramifications de sécurité liées à l'utilisation d'URL publiques. Lorsque vous utilisez des URL publiques, car le contenu du fichier n'est pas authentifié, assurez-vous que cela est approprié pour votre utilisation.

Vous pouvez utiliser une URL publique dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers de votre magasin d'objets, sans avoir à créer de données d'identification. Vous devez spécifier le paramètre credential_name en tant que NULL ou ne pas fournir de paramètre credential_name.

Par exemple, la commande suivante utilise DBMS_CLOUD.COPY_DATA sans credential_name :

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name =>'CHANNELS',
     file_uri_list =>'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/chan_v3.dat',
     format => json_object('delimiter' value ',') );
END;
/

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Note

Une liste d'URL mixtes est valide. Si la liste d'URL contient à la fois des URL publiques et des URL nécessitant une authentification, DBMS_CLOUD utilise la valeur credential_name spécifiée pour accéder aux URL nécessitant une authentification et, pour les URL publiques, la valeur credential_name spécifiée est ignorée.

Voir Compartiments publics pour plus d'informations sur l'utilisation des compartiments publics d'Oracle Cloud Infrastructure.

Vous pouvez fournir un URI avec des variables de paramètre fictif prédéfinies. Lorsque la demande est envoyée, ces variables sont remplacées par leurs valeurs réelles correspondantes. Voici la liste des paramètres fictifs pris en charge dans les sous-programmes d'ensemble DBMS_CLOUD :
  • my$home_region : Spécifie la région principale de votre location Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$home_region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$region : Spécifie la région Oracle Cloud Infrastructure (OCI) de votre base de données d'IA autonome.

    La variable de substitution my$region est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$cloud_domain : Spécifie le nom de domaine Oracle Cloud Infrastructure (OCI) pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$cloud_domain est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$namespace : Spécifie l'espace de noms du service de stockage d'objets pour Oracle Cloud Infrastructure (OCI).

    La variable de substitution my$namespace est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

  • my$compartment : Spécifie l'OCID de votre compartiment.

    La variable de substitution my$compartment est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

  • my$tenancy : Spécifie l'OCID de votre location.

    La variable de substitution my$tenancy est prise en charge uniquement avec les types de données d'identification suivants :
    • Clé de signature d'API OCI

    • Principal de ressource OCI

    • Jeton d'authentification/Données d'identification Swift

Exemple :
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'

Format d'URI du service Stockage d'objets pour Oracle Cloud Infrastructure version classique

Si vos fichiers sources résident dans le service Stockage d'objets pour Oracle Cloud Infrastructure version classique, reportez-vous à la page REST pour obtenir une description du format d'URI permettant d'accéder à vos fichiers : À propos des URL REST pour les ressources du service de stockage d'objets pour Oracle Cloud Infrastructure version classique.

Variables de substitution dans les URL Oracle Cloud Infrastructure (OCI)

Vous pouvez fournir des variables de substitution prédéfinies dans vos URL Oracle Cloud Infrastructure (OCI) lorsque vous fournissez un URI pour le paramètre object_uri pour les procédures et fonctions DBMS_CLOUD.

Ces variables de substitution sont des paramètres fictifs prédéfinis tels que my$home_region et my$tenancy, qui sont résolus et remplacés par les valeurs réelles correspondantes en fonction du contexte d'exécution de votre base de données IA autonome. Les valeurs propres à l'environnement, telles que l'OCID ou l'espace de noms de la location, ne sont pas codées en dur, ce qui rend votre code SQL dynamique et portable à déployer dans plusieurs régions (pour les API REST OCI).

Voici les avantages liés à l'utilisation de variables de substitution dans les URL OCI :

  • Le code SQL est moins sujet aux erreurs car les variables de substitution éliminent la nécessité de fournir des valeurs codées en dur. Ceci est particulièrement utile lors de l'utilisation d'identifiants longs.

  • Le code SQL est portable et n'est pas propre à une région ou à un environnement. Le même code SQL peut être réutilisé et déployé dans plusieurs régions pour les API REST OCI sans avoir à identifier la région courante.

  • Le basculement inter-région pour une base de données autonome avec intelligence artificielle à l'aide des API REST d'OCI est pratique et moins sujet aux erreurs.

Le tableau suivant répertorie chaque variable de substitution, ainsi que le type de données d'identification pris en charge correspondant et un exemple de valeur :

Nom du paramètre Description Types de données d'identification pris en charge Exemple de valeur

my$home_region

Spécifie la région principale de votre location Oracle Cloud Infrastructure (OCI).

  • Clé de signature d'API OCI

  • Principal de ressource OCI

us-ashburn-1

my$region

Spécifie la région Oracle Cloud Infrastructure (OCI) de votre base de données d'IA autonome.

  • Clé de signature d'API OCI

  • Principal de ressource OCI

  • Jeton d'authentification/Données d'identification Swift

us-phoenix-1

my$cloud_domain

Spécifie le nom de domaine Oracle Cloud Infrastructure (OCI) pour Oracle Cloud Infrastructure (OCI).

  • Clé de signature d'API OCI

  • Principal de ressource OCI

  • Jeton d'authentification/Données d'identification Swift

oraclecloud.com

my$namespace

Spécifie l'espace de noms du service de stockage d'objets pour Oracle Cloud Infrastructure (OCI).

  • Clé de signature d'API OCI

  • Principal de ressource OCI

yzsfanzztmfw

my$compartment

Spécifie l'OCID de votre compartiment.

  • Clé de signature d'API OCI

  • Principal de ressource OCI

  • Jeton d'authentification/Données d'identification Swift

ocid1.compartment.oc1..aaacdddddeeeffffffff123456

my$tenancy

Spécifie l'OCID de votre location.

  • Clé de signature d'API OCI

  • Principal de ressource OCI

  • Jeton d'authentification/Données d'identification Swift

ocid1.tenancy.oc1..aaaaddddddeeeeeeeeffffffff123678

Exemple d'utilisation de variables de substitution prédéfinies pour accéder à un fichier de stockage d'objets :

SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
    credential_name => credential_name,
    object_uri      => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name'))
FROM DUAL;

Exemple d'utilisation de variables de substitution prédéfinies pour accéder au fichier de rapport de coûts OCI :

SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
    credential_name => credential_name,
    object_uri      => 'https://objectstorage.my$home_region.my$cloud_domain/n/namespace-string/b/my$tenancy/o/reports/cost-csv/file_name.csv.gz',
    compression     => DBMS_CLOUD.COMPRESS_GZIP))
FROM DUAL;

Format d'URI Amazon S3

Si vos fichiers sources résident dans Amazon S3, consultez la description suivante du format d'URI pour accéder à vos fichiers : Accès à un seau.

Par exemple, ce qui suit fait référence au fichier channels.txt dans le seau adb de la région us-west-2.

https://s3-us-west-2.amazonaws.com/adb/channels.txt 

Vous pouvez utiliser une URL prédéfinie dans n'importe quelle procédure DBMS_CLOUD qui utilise une URL pour accéder aux fichiers du magasin d'objets Amazon S3, sans avoir à créer de données d'identification. Pour utiliser une URL prédéfinie dans une procédure DBMS_CLOUD, spécifiez le paramètre credential_name comme NULL ou n'indiquez pas de paramètre credential_name.

Pour plus d'informations, voir Partager un objet avec d'autres.

Note

DBMS_CLOUD prend en charge la syntaxe de point d'extrémité Amazon S3 standard pour accéder à vos seaux. DBMS_CLOUD ne prend pas en charge les points d'extrémité existants d'Amazon S3. Pour plus d'informations, voir Points d'extrémité existants.

Azure Blob Storage ou Azure Data Lake Storage URI Format

Si vos fichiers sources résident dans Azure Blob Storage ou Azure Data Lake Storage, voir la description suivante du format d'URI pour accéder à vos fichiers : Syntaxe de l'URI de la ressource.

Par exemple, ce qui suit fait référence au fichier channels.txt dans le conteneur adb du compte de stockage adb_user :

https://adb_user.blob.core.windows.net/adb/channels.txt
Note

Vous pouvez utiliser l'URL des signatures d'accès partagé (SAS) dans n'importe quelle procédure DBMS_CLOUD qui prend une URL pour accéder aux fichiers dans Azure Blob Storage ou Azure Data Lake Storage, sans avoir à créer de données d'identification. Pour utiliser une URL de signature d'accès partagé (SAS), spécifiez le paramètre credential_name comme NULL ou n'indiquez pas de paramètre credential_name.

Pour plus d'informations, voir Accorder un accès limité aux ressources de stockage Azure à l'aide des signatures d'accès partagé.

Format d'URI compatible Amazon S3

DBMS_CLOUD prend en charge les mises en oeuvre du service de stockage d'objets qui prennent en charge les URL compatibles avec Amazon S3, notamment les services suivants :

  • Oracle Cloud Infrastructure Object Storage avec URL compatible Amazon S3
  • Google Cloud Storage avec URL compatible Amazon S3
  • Wasabi Hot Cloud Storage avec URL compatible Amazon S3
Note

Pour utiliser DBMS_CLOUD avec un magasin d'objets compatible Amazon S3, vous devez fournir des données d'identification valides. Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.

Si vos fichiers sources résident sur un service qui prend en charge les URI compatibles avec Amazon S3, utilisez le format d'URI suivant pour accéder à vos fichiers :

  • URL compatible S3 du service Oracle Cloud Infrastructure Object Storage

    Si vos fichiers sources résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser les formats d'URL d'objet et d'URL de seau indiqués ci-dessous pour le domaine commercial (OC1). Pour plus d'informations, voir Points d'extrémité dédiés du service de stockage d'objets.

    Note

    Les URL de point d'extrémité dédié au magasin d'objets OCI ne sont prises en charge que dans les domaines commerciaux (OC1).

    Formats d'URL d'objet

    • Pris en charge uniquement dans le domaine commercial (OC1) :

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
    • Prise en charge dans toutes les zones :

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name/object_name

    Formats d'URL de seau :

    • Pris en charge uniquement dans le domaine commercial (OC1) :

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
    • Prise en charge dans toutes les zones :

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name

    Pour plus d'informations, voir Compatibilité avec Amazon S3 et API du service de stockage d'objets.

  • URL compatible S3 de Google Cloud Storage

    Format d'URL d'objet :

    https://bucketname.storage.googleapis.com/object_name

    Format d'URL de seau :

    https://bucketname.storage.googleapis.com/

    Pour plus d'informations, voir Migration d'Amazon S3 vers Cloud Storage et Points d'extrémité de demande.

  • URL compatible Wasabi S3

    Format d'URL d'objet :

    https://bucketname.s3.region.wasabisys.com/object_name

    Format d'URL de seau :

    https://bucketname.s3.region.wasabisys.com/

    Pour plus d'informations, voir Informations de référence sur l'API Wasabi S3 et URL de service pour les régions de stockage de Wasabi.

Format d'URL brute GitHub

DBMS_CLOUD prend en charge les URL brutes GitHub pour accéder aux données à partir d'un référentiel GitHub.

Note

Pour l'accès DBMS_CLOUD avec des URL brutes GitHub, l'accès au référentiel est limité à la fonctionnalité en lecture seule. Les API DBMS_CLOUD telles que DBMS_CLOUD.PUT_OBJECT qui écrivent des données ne sont pas prises en charge avec les API DBMS_CLOUD dans un référentiel GitHub.

Vous pouvez également utiliser DBMS_CLOUD_REPO.PUT_FILE pour charger des données dans un référentiel GitHub.

Utilisez les URL brutes GitHub avec les API DBMS_CLOUD pour accéder aux fichiers sources qui résident dans un référentiel GitHub. Lorsque vous naviguez jusqu'à un fichier sur GitHub et cliquez sur le lien Brut, l'URL brute GitHub s'affiche. Le domaine raw.githubusercontent.com fournit des versions non traitées des fichiers stockés dans les référentiels GitHub.

Par exemple, en utilisant DBMS_CLOUD.GET_OBJECT :

BEGIN
 DBMS_CLOUD.GET_OBJECT(
   credential_name => 'MY_CRED',
   object_uri      => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/adb-loading.csv',
   directory_name  => 'DATA_PUMP_DIR'
  );
END;
/

Par exemple, en utilisant DBMS_CLOUD.CREATE_EXTERNAL_TABLE :

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    credential_name => 'MY_CRED',
    table_name      => 'EMPLOYEES_EXT',
    file_uri_list   => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/*.csv',
    column_list     => 'name varchar2(30), gender varchar2(30), salary number',
    format          => JSON_OBJECT('type' value 'csv')
  );
END;
/
SELECT * FROM employees_ext;

Les procédures DBMS_CLOUD qui utilisent une URL pour accéder à un référentiel GitHub ne nécessitent pas de données d'identification avec une visibilité publique des référentiels GitHub. Pour utiliser une URL de visibilité publique, vous pouvez spécifier le paramètre credential_name en tant que NULL ou ne pas fournir de paramètre credential_name. Pour plus d'informations, voir Définition de la visibilité du référentiel.

Formats d'URI supplémentaires gérés par le client

En plus de URIs préconfiguré et reconnu avec ses noms de domaine complets (FQDNs), DBMS_CLOUD ne peut pas déterminer le modèle d'authentification approprié pour les points d'extrémité gérés par le client URIs. Dans ces cas, DBMS_CLOUD s'appuie sur le modèle URI approprié pour identifier le modèle d'authentification pour le point d'extrémité géré par le client.
Modèle d'URI Type d'authentification Description de la méthode d'accès Exemple d'URI
de base :// Authentification de base Le nom d'utilisateur et le mot de passe stockés dans l'objet de données d'identification de base de données sont utilisés pour authentifier la demande HTTP basic://api.github.com/users/myaccount
porteur :// authentification par jeton du porteur Le jeton de porteur stocké dans le champ de mot de passe de l'objet de données d'identification de base de données est utilisé pour spécifier l'en-tête d'autorisation de la demande HTTP bearer://api.sendgrid.com/v3/resource
oci :// OCI natif Clé de signature OCI obtenue à partir de l'objet de données d'identification de base de données stocké et utilisé pour signer des demandes à l'aide du protocole d'authentification OCI oci://objectstorage.us-ashburn-1.oraclecloud.com
public :// Aucune authentification URL publiques public://cms.data.gov/
s3:// Compatible avec S3 Amazon Web Services Clé d'accès et clé secrète obtenues à partir du champ nom d'utilisateur/mot de passe de l'objet de données d'identification de base de données, et authentification compatible S3 effectuée pour la demande HTTP. s3://bucket.myprivatesite.com/file1.csv

Exemples :

Point d'extrémité géré par le client à l'aide d'une authentification compatible avec S3.

Cet exemple montre comment, pour la nouvelle version de URIs, les clients peuvent ajouter le modèle de nom d'hôte public ou privé à l'aide de l'ensemble DBMS_NETWORK_ACL_ADMIN. Le bloc de code, exécuté par l'utilisateur ADMIN, permet à HTTPS d'accéder aux points d'extrémité du domaine *.myprivatesite.com pour l'utilisateur SCOTT. Il montre ensuite comment l'utilisateur SCOTT accède au point d'extrémité nouvellement activé. Notez que les données d'identification MY_CRED pour l'utilisateur SCOTT doivent stocker la clé d'accès et la clé secrète pour l'authentification compatible S3 effectuée pour la demande HTTP indiquée par le préfixe URI.


BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => '*.myprivatesite.com',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db),
         private_target => TRUE   );
END;
/

BEGIN
   DBMS_CLOUD.get_object(
       credential_name => 'MY_CRED',
       object_uri      => 's3://bucket.myprivatesite.com/file1.csv',
       directory_name  => 'MY_DIR'  );
END;
/

Point d'extrémité géré par le client avec accès public

Cet exemple montre comment enregistrer l'utilisateur SCOTT pour accéder aux API REST publiques. L'utilisateur ADMIN crée une liste de contrôle d'accès réseau pour l'hôte afin de fournir l'accès à l'utilisateur SCOTT.


BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'data.cms.gov',
         ace => xs$ace_type(privilege_list => xs$name_list('http'),
                            principal_name => 'SCOTT',
                            principal_type => xs_acl.ptype_db)
   );
END;
/

SELECT DBMS_CLOUD.get_response_text(
          DBMS_CLOUD.send_request(
              uri     => 'public://data.cms.gov/provider-data/api/1/datastore/imports/a',
              method  => DBMS_CLOUD.METHOD_GET,
              headers => JSON_OBJECT('Accept' VALUE 'application/json')
          )
       )
   FROM DUAL;
/