Formatos de URI DBMS_CLOUD
Descripción del formato de los URI del archivo de origen en operaciones con DBMS_CLOUD
. El formato depende del servicio de almacenamiento de objetos que esté utilizando.
DBMS_CLOUD
garantiza una comunicación segura y cualquier URI que especifique debe utilizar HTTPS, con https://
como prefijo para el URI.
- Formato de URI nativo de Oracle Cloud Infrastructure Object Storage
- Formato de URI de SWIFT de Oracle Cloud Infrastructure Object Storage
- Formato de URI de Oracle Cloud Infrastructure Object Storage mediante una URL de solicitud autenticada previamente
- FormatoURI mediante URL pública
- Formato de URI de Oracle Cloud Infrastructure Object Storage Classic
- Formato de URI de Amazon S3
- Formato de URI de Azure Blob Storage
- Amazon S3 Compatible URI Format
- GitHub Formato de URL raw
DBMS_CLOUD
soporta las URL raw de GitHub para acceder a los datos desde un GitHub Repositorio. - Formatos de URI gestionados por el cliente adicionales
Además de losURIs
preconfigurados y reconocidos con sus nombres de dominio totalmente cualificados (FQDNs
),DBMS_CLOUD
no puede determinar el esquema de autenticación adecuado para los puntos finales gestionados por el clienteURIs
. En esos casos,DBMS_CLOUD
se basa en el esquemaURI
adecuado para identificar el esquema de autenticación para el punto final gestionado por el cliente.
Tema principal: DBMS_CLOUD Package
Formato de URI nativo de Oracle Cloud Infrastructure Object Storage
Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage, puede utilizar los URI nativos de Oracle Cloud Infrastructure con el formato:
https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filename
Por ejemplo, el URI nativo para el archivo channels.txt
en el cubo bucketname
del centro de datos Phoenix
es:
https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt
En este ejemplo, namespace-string
es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname
es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.
Puede encontrar el URI en Oracle Cloud Infrastructure Object Storage "Detalles de objeto" en el menú de puntos suspensivos del lado derecho del almacén de objetos:
- Haga clic en
junto a Oracle Cloud para abrir la consola de Oracle Cloud Infrastructure.
- From the Oracle Cloud Infrastructure left navigation menu click Core Infrastructure. En Object Storage, haga clic en Object Storage.
- En Ámbito de lista, seleccione un compartimento.
- En la columna Nombre, seleccione un cubo.
- En el área Objetos, haga clic en Ver detalles de objeto.
- En la página Detalles de objeto, el campo URI de ruta de acceso de URL muestra el URI para acceder al objeto.
Los archivos de origen se deben almacenar en un cubo de nivel de Object Storage. Autonomous Database no soporta cubos en el nivel de Archive Storage. Consulte Descripción general de Object Storage para obtener más información.
Tema principal: Formatos de URI DBMS_CLOUD
Formato de URI de Swift de Oracle Cloud Infrastructure Object Storage
Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage, puede utilizar los URI de Swift de Oracle Cloud Infrastructure con el formato:
https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename
Por ejemplo, el URI de Swift para el archivo channels.txt
en el cubo bucketname
del centro de datos Phoenix
es:
https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/namespace-string/bucketname/channels.txt
En este ejemplo, namespace-string
es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname
es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.
Los archivos de origen se deben almacenar en un cubo de nivel de Object Storage. Autonomous Database no soporta cubos en el nivel de Archive Storage. Consulte Descripción general de Object Storage para obtener más información.
Tema principal: Formatos de URI DBMS_CLOUD
Formato de URI de Oracle Cloud Infrastructure Object Storage mediante una URL de solicitud autenticada previamente
Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage, puede utilizar los URI autenticados previamente de Oracle Cloud Infrastructure. Al crear una solicitud autenticada previamente, se genera una URL única. A continuación, puede proporcionar la URL única a los usuarios de su organización, partners o terceros para acceder al destino de recurso de Object Storage identificado en la solicitud autenticada previamente.
Eche un vistazo a las necesidades de la empresa y las ramificaciones de seguridad del acceso autenticado previamente. Al crear la URL de solicitud autenticada previamente, tenga en cuenta la caducidad y el tipo de acceso para asegurarse de que son adecuados para su uso.
La URL de solicitud autenticada previamente proporciona a cualquier usuario que tenga acceso URL a los destinos identificados en la solicitud mientras la solicitud esté activa. Además de tener en cuenta las necesidades operativas del acceso autenticado previamente, es igualmente importante gestionar su distribución.
El formato de las URL de solicitudes preautenticadas es:
https://objectstorage.region.oraclecloud.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename
Por ejemplo, un URI autenticado previamente de ejemplo para el archivo channels.txt
en el cubo bucketname del centro de datos Phoenix
es:
https://objectstorage.us-phoenix-1.oraclecloud.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txt
En este ejemplo, namespace-string
es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname
es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.
Puede utilizar una URL autenticada previamente en cualquier procedimiento DBMS_CLOUD
que tome una URL para acceder a los archivos del almacén de objetos de Oracle Cloud Infrastructure, sin necesidad de crear una credencial. Debe especificar el parámetro credential_name
como NULL
o no proporcionar un parámetro credential_name
.
Por ejemplo:
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;
/
Es válida una lista de URL combinadas. Si la lista de URL contiene tanto URL autenticadas previamente como URL que necesitan autenticación,
DBMS_CLOUD
utiliza el valor credential_name
especificado para acceder a las URL que necesitan autenticación y, para las URL autenticadas previamente, se ignora el valor credential_name
especificado.
Consulte Uso de solicitudes preautenticadas para obtener más información.
Tema principal: Formatos de URI DBMS_CLOUD
Formato de URI mediante URL pública
Si los archivos de origen residen en un almacén de objetos que proporciona URL públicas, puede utilizar URL públicas con procedimientos DBMS_CLOUD
. Público significa que el servicio Object Storage soporta el acceso anónimo no autenticado a los archivos del almacén de objetos. Consulte el servicio Cloud Object Storage para obtener detalles sobre cómo hacer que un objeto sea público en un almacén de objetos soportado.
Eche un vistazo a las necesidades de la empresa y las ramificaciones de seguridad del uso de URL públicas. Cuando utilice URL públicas, debido a que el contenido del archivo no se está autenticando, asegúrese de que es adecuado para su uso.
Puede utilizar una URL pública en cualquier procedimiento DBMS_CLOUD
que tome una URL para acceder a los archivos del almacén de objetos, sin necesidad de crear una credencial. Debe especificar el parámetro credential_name
como NULL
o no proporcionar un parámetro credential_name
.
Por ejemplo, lo siguiente utiliza DBMS_CLOUD.COPY_DATA
sin un valor 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;
/
En este ejemplo, namespace-string
es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname
es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.
Es válida una lista de URL combinadas. Si la lista de URL contiene tanto URL públicas como URL que necesitan autenticación,
DBMS_CLOUD
utiliza el valor credential_name
especificado para acceder a las URL que necesitan autenticación y, para las URL públicas, se ignora el valor credential_name
especificado.
Consulte Bloques públicos para obtener información sobre el uso de cubos públicos de Oracle Cloud Infrastructure.
Tema principal: Formatos de URI DBMS_CLOUD
Formato de URI de Oracle Cloud Infrastructure Object Storage Classic
Si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage Classic, consulte en la página REST el apartado acerca de las URL de REST para recursos de Oracle Cloud Infrastructure Object Storage Classic para obtener una descripción del formato de URI para acceder a los archivos.
Tema principal: Formatos de URI DBMS_CLOUD
Formato de URI de Amazon S3
Si los archivos de origen residen en Amazon S3, consulte lo siguiente para obtener una descripción del formato de URI para acceder a los archivos: Acceso a un cubo.
Por ejemplo, con lo siguiente se hace referencia al archivo channels.txt
del cubo adb
de la región us-west-2
.
https://s3-us-west-2.amazonaws.com/adb/channels.txt
Puede utilizar una URL a la que se haya conectado previamente en cualquier procedimiento DBMS_CLOUD
que tome una URL para acceder a los archivos del almacén de objetos de Amazon S3, sin necesidad de crear una credencial. Para utilizar una URL a la que se haya conectado previamente en cualquier procedimiento DBMS_CLOUD
, especifique el parámetro credential_name
como NULL
o no proporcione un parámetro credential_name
.
Consulte Uso compartido de un objeto con otros para obtener más información.
DBMS_CLOUD
soporta la sintaxis de punto final de Amazon S3 estándar para acceder a los cubos. DBMS_CLOUD
no soporta puntos finales heredados de Amazon S3. Consulte Puntos finales heredados para obtener más información.
Tema principal: Formatos de URI DBMS_CLOUD
Formato de URI de Azure Blob Storage
Si los archivos de origen residen en Azure Blob Storage, consulte lo siguiente para obtener una descripción del formato de URI para acceder a los archivos: Sintaxis de URI de recursos.
Por ejemplo, lo siguiente hace referencia al archivo channels.txt
del contenedor adb
de la cuenta de almacenamiento adb_user
:
https://adb_user.blob.core.windows.net/adb/channels.txt
You can use Shared Access Signatures (SAS) URL in any
DBMS_CLOUD
procedure that takes a URL to access files in Azure Blob Storage, without the need to create a credential. Para utilizar una URL de firma de acceso compartido (SAS), especifique el parámetro credential_name
como NULL
o no proporcione un parámetro credential_name
.
Consulte Grant Limited Access to Azure Storage Resources Using Shared Access Signatures (SAS) para obtener más información.
Tema principal: Formatos de URI DBMS_CLOUD
Formato de URI compatible con Amazon S3
DBMS_CLOUD
soporta implantaciones de servicio de almacenamiento de objetos que soportan URL compatibles con Amazon S3, incluidos los siguientes servicios:
- Oracle Cloud Infrastructure Object Storage con una URL compatible con Amazon S3
- Google Cloud Storage con URL compatible con Amazon S3
- Wasabi Hot Cloud Storage con URL compatible con Amazon S3
Para utilizar
DBMS_CLOUD
con un almacén de objetos compatible con Amazon S3, debe proporcionar credenciales válidas. Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.
Si los archivos de origen residen en un servicio que soporta URI compatibles con Amazon S3, utilice el siguiente formato de URI para acceder a los archivos:
-
Oracle Cloud Infrastructure Object Storage S3 Compatible URL
Formato de URL de objeto:
https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name/object_name
Formato de URL de cubo:
https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name
Consulte API de compatibilidad de Amazon S3 y API del servicio Object Storage para obtener más información.
-
URL compatible con Google Cloud Storage S3
Formato de URL de objeto:
https://bucketname.storage.googleapis.com/object_name
Formato de URL de cubo:
https://bucketname.storage.googleapis.com/
Consulte Migración de Amazon S3 a Cloud Storage y Puntos finales de solicitud para obtener más información.
-
URL compatible con Wasabi S3
Formato de URL de objeto:
https://bucketname.s3.region.wasabisys.com/object_name
Formato de URL de cubo:
https://bucketname.s3.region.wasabisys.com/
Consulte S3-compatible API Connectivity for Wasabi Hot Cloud Storage y ¿Qué son las URL de servicio para las diferentes regiones de Wasabi para obtener más información?
Tema principal: Formatos de URI DBMS_CLOUD
GitHub Formato de URL raw
DBMS_CLOUD
soporta las URL raw de GitHub para acceder a los datos desde un GitHub Repository.
Para el acceso
DBMS_CLOUD
con URL raw GitHub, el acceso al repositorio se limita a la funcionalidad de solo lectura. Las API de DBMS_CLOUD
, como DBMS_CLOUD.PUT_OBJECT
, que escriben datos, no están soportadas con las API de DBMS_CLOUD
en un repositorio de GitHub.
Como alternativa, utilice DBMS_CLOUD_REPO.PUT_FILE
para cargar los datos en un GitHub Repository.
Utilice las URL raw de GitHub con las API de DBMS_CLOUD
para acceder a los archivos de origen que residen en un repositorio GitHub. Al buscar un archivo en GitHub y hacer clic en el enlace Raw, se muestra la URL raw GitHub. El dominio raw.githubusercontent.com
proporciona versiones sin procesar de los archivos almacenados en los repositorios GitHub.
Por ejemplo, con 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;
/
Por ejemplo, con 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;
Los procedimientos DBMS_CLOUD
que toman una URL para acceder a un repositorio GitHub no requieren credenciales con repositorios GitHub de visibilidad pública. Para utilizar una URL de visibilidad pública, puede especificar el parámetro credential_name
como NULL
o no proporcionar un parámetro credential_name
. Consulte Definición de la visibilidad del repositorio para obtener más información.
Tema principal: Formatos de URI DBMS_CLOUD
Formatos URI adicionales gestionados por el cliente
URIs
preconfigurado y reconocido con sus nombres de dominio totalmente cualificados (FQDNs
), DBMS_CLOUD
no puede determinar el esquema de autenticación adecuado para los puntos finales gestionados por el cliente URIs
. En esos casos, DBMS_CLOUD
se basa en el esquema URI
adecuado para identificar el esquema de autenticación para el punto final gestionado por el cliente.
Esquema de URI | Tipo de Autenticación | Descripción de método de acceso | Ejemplo de URI |
---|---|---|---|
básica:// | Autenticación básica | El nombre de usuario y la contraseña almacenados en el objeto de credencial de base de datos se utilizan para autenticar la solicitud HTTP | basic://api.github.com/users/myaccount |
Portador:// | Autenticación de token de portador | El token de portador almacenado en el campo de contraseña del objeto de credencial de base de datos se utiliza para especificar la cabecera de autorización para la solicitud HTTP | bearer://api.sendgrid.com/v3/resource |
oci:// | Nativa de OCI | Clave de firma de OCI obtenida del objeto de credencial de base de datos almacenada y utilizada para firmar solicitudes mediante el protocolo de autenticación de OCI | oci://objectstorage.us-ashburn-1.oraclecloud.com |
public:// | Sin autenticación | URL públicas | public://cms.data.gov/ |
s3:// | Compatibilidad con Amazon Web Services S3 | Clave de acceso y clave secreta obtenidas del campo de nombre de usuario/contraseña del objeto de credencial de base de datos y autenticación compatible con S3 realizada para la solicitud HTTP. | s3://bucket.myprivatesite.com/file1.csv |
Examples:
Punto final gestionado por el cliente mediante la autenticación compatible con S3.
En este ejemplo se muestra cómo para el nuevo URIs
, los clientes pueden agregar el patrón de nombre de host público o privado mediante el paquete DBMS_NETWORK_ACL_ADMIN
. El bloque de código, ejecutado por el usuario ADMIN
, permite el acceso HTTPS
para el usuario SCOTT
a los puntos finales del dominio *.myprivatesite.com
. A continuación, muestra cómo el usuario SCOTT
accede al punto final recién activado. Tenga en cuenta que la credencial MY_CRED
para el usuario SCOTT
debe almacenar la clave de acceso y la clave secreta para la autenticación compatible con S3 realizada para la solicitud HTTP
indicada por el prefijo 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;
/
Punto final gestionado por el cliente con acceso público
En este ejemplo se muestra cómo registrar el usuario SCOTT
para acceder a las API de REST públicas. El usuario ADMIN
crea una ACL de red para que el host proporcione acceso al usuario 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;
/
Tema principal: Formatos de URI DBMS_CLOUD