- Carica i dati da Azure Blob Storage in Oracle Exadata Database Service on Dedicated Infrastructure
- Integra Oracle Exadata Database Service on Dedicated Infrastructure e Azure Blob Storage
Integra Oracle Exadata Database Service on Dedicated Infrastructure e Azure Blob Storage
- Eseguire il login alla console di Azure per ottenere informazioni per lo Storage Blob di Azure da cui il database di Oracle Exadata Database Service on Dedicated Infrastructure caricherà e interrogherà i dati. Queste informazioni sono necessarie per indicare al pacchetto DBMS_CLOUD come connettersi agli oggetti Azure Blob Storage.Ottenere i seguenti dettagli:
- Credenziali Blob di Azure: nome utente e password per accedere a Azure Blob Storage.
- Nome memorizzazione Blob di Azure: il nome della Memorizzazione Blob di Azure in cui sono memorizzati i dati, in genere nel formato
blobstoragename.blob.core.windows.net
. - URL Blob di Azure: URL per Azure Blob Storage in cui sono memorizzati i dati, in genere nel formato
https://blobstoragename.blob.core.windows.net/dirname/object_name
. - Azure Blob Private Endpoint: indirizzo IP dell'endpoint privato di Azure Blob Storage. Se non esiste un endpoint privato, crearne uno e prendere nota dell'indirizzo IP.
- Dal menu OCI, selezionare Networking/DNS Management per creare una zona DNS privata. Nella nuova zona DNS privata aggiungere un record per il nome Azure Blob Storage dal passo 1 per risolvere l'indirizzo IP dell'endpoint privato Azure Blob dal passo 1.
- Dal menu OCI, selezionare Gestione di rete/DNS e creare una vista privata DNS. Aggiungere la zona DNS privata creata nel passo 2 a questa vista privata DNS appena creata e attivare le modifiche.
- Nel menu OCI selezionare Networking/Virtual Client Network (VCN). Selezionare la VCN creata al momento del provisioning di OracleDB for Azure per Oracle Exadata Database Service on Dedicated Infrastructure (se necessario, modificare il compartimento). Selezionare il collegamento del risolutore DNS, quindi aggiungere la vista privata DNS creata in precedenza al risolutore DNS.Ciò consente la risoluzione di nomi e indirizzi IP da Oracle Exadata Database Service on Dedicated Infrastructure all'endpoint privato di Azure Blob Storage.
- Eseguire il login a uno dei nodi cluster VM di Oracle Exadata Database Service on Dedicated Infrastructure per utilizzare il comando
nslookup
per verificare che la risoluzione del nome host all'indirizzo IP funzioni per il nome host e l'IP dell'endpoint privato di Azure SQL Server.Ad esempio:[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 ~]$
Le variabili nell'esempio sono i seguenti:- blobstoragename è il nome Azure Blob Storage del passo 1.
- IP_address_of_Azure_Blob_private_endpoint è l'indirizzo IP dell'endpoint privato Blob di Azure dal passo 1.
- Eseguire il login al pluggable database Oracle Exadata Database Service on Dedicated Infrastructure per creare o selezionare un utente ad avere il ruolo
cloud_user
. Prendere nota del nome utente e della password dell'utente. Gli utenti con ruolo cloud_user avranno il privilegio di utilizzare il pacchettoDBMS_CLOUD
. - Installare il pacchetto
DBMS_CLOUD
sul database 19c o versione Oracle Exadata Database Service on Dedicated Infrastructure seguendo l'articolo My Oracle Support How to Setup and Use DBMS_CLOUD Package (Doc ID 2748362.1). Per informazioni dettagliate, vedere la sezione Rivedi documentazione. Durante l'installazione del pacchettoDBMS_CLOUD
, tenere presente quanto riportato di seguito.- Nella sezione dell'articolo di My Oracle Support Concedere i privilegi minimi a un utente o ruolo per l'utilizzo di DBMS_CLOUD, utilizzare il nome utente creato nel passo 6.
- Nella sezione dell'articolo di My Oracle Support, Crea wallet SSL con certificati, questo passo aggiunge i certificati radice al wallet SSL. You can skip the creation of the wallet step because Oracle Exadata Database Service on Dedicated Infrastructure already has a wallet to manage SSL certificates (the Grid Wallet). È necessario aggiungere i certificati radice al wallet Grid, che si trova in
/var/opt/oracle/dbaas_acfs/grid/tcps_wallets
. Per aggiungere i certificati radice, sarà necessaria la password di Grid Wallet. Per informazioni dettagliate su come ottenere la password del wallet Grid, vedere l'articolo My Oracle Support Get Password of ASM and Wallets (ID documento 2814361.1) nella sezione Revisione documentazione.
- Eseguire il login al pluggable database Oracle Exadata Database Service on Dedicated Infrastructure per creare una credenziale Azure utilizzando il pacchetto
DBMS_CLOUD
installato nel passo precedente.[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; /
Le variabili nell'esempio sono i seguenti:- exadb_name è il nome del database Oracle Exadata Database Service on Dedicated Infrastructure.
- Username_From_Step_6 è il nome utente dal passo 6.
- Password_From_Step_6 è la password indicata al passaggio 6.
- pdbname è il nome del pluggable database.
- Azure_Blob_Storage_Username_from_Step_1 è il nome utente di Azure Blob Storage dal passo 1.
- Azure_Blob_Storage_Password_from_Step_1 è la password di Azure Blob Storage dal passo 1.
- Dopo aver creato le credenziali di Azure, creare una tabella esterna per accedere agli oggetti di Azure Blob Storage come descritto di seguito.
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; /
Ad esempio, se l'oggetto Blob a cui accedere è un file di testo separato da virgole con 3 colonne, il comando potrebbe essere simile al seguente: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; /
- Esegui una query per verificare il pluggable database Oracle Exadata Database Service on Dedicated Infrastructure in grado di eseguire query sulle tabelle create in precedenza.Ad esempio:
select count(*) from Table_Name
Table_Name è il nome di una tabella del database su cui eseguire la query.