- Carga de datos del almacenamiento de blob de Azure en Oracle Exadata Database Service on Dedicated Infrastructure
- Integración de Oracle Exadata Database Service on Dedicated Infrastructure y Azure
Integre Oracle Exadata Database Service on Dedicated Infrastructure y Azure Blob Storage
- Conéctese a la consola de Azure para obtener información para el almacenamiento de blob de Azure desde el que la base de datos de Oracle Exadata Database Service on Dedicated Infrastructure cargará y consultará datos. Esta información es necesaria para indicar al paquete DBMS_CLOUD cómo conectarse a los objetos de Azure Blob Storage.Obtenga los siguientes detalles:
- Credenciales de blobs de Azure: nombre de usuario y contraseña para acceder a Azure Blob Storage.
- Nombre de almacenamiento de blobs de Azure: nombre del almacenamiento de blobs de Azure donde se almacenan los datos, normalmente con el formato
blobstoragename.blob.core.windows.net
. - URL de Blob de Azure: URL para el almacenamiento de Blob de Azure donde se almacenan los datos, normalmente con el formato
https://blobstoragename.blob.core.windows.net/dirname/object_name
. - Punto final privado de Blob de Azure: dirección IP del punto final privado de Azure Blob Storage. Si no existe un punto final privado, cree uno y anote la dirección IP.
- En el menú OCI, seleccione Gestión de red/DNS para crear una zona de DNS privada. En la nueva zona de DNS privada, agregue un registro para el nombre de Azure Blob Storage del paso 1 para resolver la dirección IP del punto final privado Blob de Azure del paso 1.
- En el menú OCI, seleccione Gestión de redes/DNS y cree una vista privada de DNS. Agregue la zona de DNS privada creada en el paso 2 a esta vista privada de DNS recién creada y active los cambios.
- En el menú OCI, seleccione Redes/Red de cliente virtual (VCN). Seleccione la VCN creada al aprovisionar OracleDB para Azure para Oracle Exadata Database Service on Dedicated Infrastructure (cambie el compartimento si es necesario). Seleccione el enlace de resolución DNS y, a continuación, agregue la vista privada DNS creada previamente al solucionador DNS.Esto permite la resolución de nombres y direcciones IP desde Oracle Exadata Database Service on Dedicated Infrastructure hasta el punto final privado de Azure Blob Storage.
- Conéctese a uno de los nodos de cluster de VM de Oracle Exadata Database Service on Dedicated Infrastructure para utilizar el comando
nslookup
para verificar que el nombre de host para la resolución de direcciones IP funciona para el nombre de host y la IP de punto final privado de Azure SQL Server.Por ejemplo:[opc@exa_dbnodex ~]$ nslookup blobstoragename.blob.core.windows.net Server: 169.254.169.254 Address: 169.254.169.254#53 Non-authoritative answer: Name: blobstoragename.blob.core.windows.net Address: IP_address_of_Azure_Blob_private_endpoint [opc@exa_dbnodex ~]$
Las variables del ejemplo tienen los siguientes valores:- blobstoragename es el nombre del almacenamiento de blobs de Azure del paso 1.
- IP_address_of_Azure_Blob_private_endpoint es la dirección IP del punto final privado Blob de Azure del paso 1.
- Conéctese a la base de datos de conexión de Oracle Exadata Database Service on Dedicated Infrastructure para crear o seleccionar un usuario que tenga el rol
cloud_user
. Observe el nombre de usuario y la contraseña del usuario. Los usuarios con el rol cloud_user tendrán el privilegio para utilizar el paqueteDBMS_CLOUD
. - Instale el paquete
DBMS_CLOUD
en la base de datos 19c o posterior de Oracle Exadata Database Service on Dedicated Infrastructure siguiendo el artículo de My Oracle Support Cómo configurar y utilizar el paquete DBMS_CLOUD (ID de documento 2748362.1). Consulte la sección Revisar documentación para obtener más detalles. Tenga en cuenta lo siguiente al instalar el paqueteDBMS_CLOUD
:- En la sección de artículo de My Oracle Support Otorgue los privilegios mínimos a un usuario o rol para utilizar DBMS_CLOUD, utilice el nombre de usuario creado en el paso 6.
- En la sección de artículo de My Oracle Support Crear cartera SSL con certificados, este paso agregará certificados raíz a la cartera SSL. Puede omitir la creación del paso de cartera porque Oracle Exadata Database Service on Dedicated Infrastructure ya tiene una cartera para gestionar certificados SSL (la cartera de cuadrícula). En su lugar, debe agregar los certificados raíz a Grid Wallet, que se encuentra en
/var/opt/oracle/dbaas_acfs/grid/tcps_wallets
. Necesitará la contraseña de Grid Wallet para agregar los certificados raíz. Consulte el artículo de My Oracle Support Get Password of ASM and Wallets (ID de documento 2814361.1) en la sección Review Documentation para obtener más información sobre cómo obtener la contraseña de Grid Wallet.
- Conéctese a la base de datos de conexión de Oracle Exadata Database Service on Dedicated Infrastructure para crear una credencial de Azure mediante el paquete
DBMS_CLOUD
instalado en el paso anterior.[opc@exa-dbnodex ~]$ sudo su - oracle Last login: Tue Sep 13 20:06:30 UTC 2022 [oracle@exa-dbnodex ~]$ . ./exa_dbname.env [oracle@exa-dbnodex ~]$sqlplus Username_From_Step_6/Password_From_Step_6@'(DESCRIPTION =(ADDRESS=(PROTOCOL=TCP)(HOST=exascan.customersubnet1.cvcn.oraclevcn.com) (PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=pdbna me.customersubnet1.cvcn.oraclevcn.com)(FAILOVER_MODE=(TYPE=select)(MET HOD=basic))))' SQL>BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'AZ_CRED', username => 'Azure_Blob_Storage_Username_from_Step_1', password => ‘Azure_Blob_Storage_Password_from_Step_1' ); END; /
Las variables del ejemplo tienen los siguientes valores:- exadb_name es el nombre de la base de datos Oracle Exadata Database Service on Dedicated Infrastructure.
- Username_From_Step_6 es el nombre de usuario del paso 6.
- Password_From_Step_6 es la contraseña del paso 6.
- pdbname es el nombre de la base de datos de conexión.
- Azure_Blob_Storage_Username_from_Step_1 es el nombre de usuario de Azure Blob Storage del paso 1.
- Azure_Blob_Storage_Password_from_Step_1 es la contraseña de Azure Blob Storage del paso 1.
- Después de crear la credencial de Azure, cree una tabla externa para acceder a los objetos de Azure Blob Storage de la siguiente manera:
SQL>BEGIN DBMS_CLOUD.CREATE_EXTERNAL_TABLE( table_name =>'Table_Name', credential_name =>'AZ_CRED', file_uri_list => 'Azure_Blob_URL_From_Step_1', format => json_object('delimiter' value ','), column_list => 'Column1_Name Type, Column2_Name Type, Column3_Name Type' ); END; /
Por ejemplo, si el objeto Blob al que acceder es un archivo de texto separado por comas con 3 columnas, el comando puede parecerse a:SQL>BEGIN DBMS_CLOUD.CREATE_EXTERNAL_TABLE( table_name =>'CHANNELS_EXT', credential_name =>'AZ_CRED', file_uri_list =>'https://odsaexternaltables.blob.core.windows.net/data/channels.txt', format => json_object('delimiter' value ','), column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)' ); END; /
- Ejecute una consulta para verificar que la base de datos de conexión de Oracle Exadata Database Service on Dedicated Infrastructure puede consultar las tablas creadas anteriormente.Por ejemplo:
select count(*) from Table_Name
Table_Name es el nombre de una tabla de la base de datos que se va a consultar.