- Load data from Azure Blob Storage to Oracle Exadata Database Service on Dedicated Infrastructure
- Integre o Oracle Exadata Database Service on Dedicated Infrastructure e Blob do Azure
Integrate Oracle Exadata Database Service on Dedicated Infrastructure and Azure Blob Storage
- Faça log-in na console do Azure para obter informações do Azure Blob Storage do qual o banco de dados Oracle Exadata Database Service on Dedicated Infrastructure carregará e consultará dados. Essas informações são necessárias para informar ao pacote DBMS_CLOUD como estabelecer conexão com os objetos do Azure Blob Storage.Obtenha os seguintes detalhes:
- Credenciais do Azure Blob: Nome de usuário e senha para acessar o Azure Blob Storage.
- Nome do Armazenamento do Azure Blob: Nome do Armazenamento do Azure Blob no qual os dados são armazenados, geralmente no formato
blobstoragename.blob.core.windows.net
. - URL do Azure Blob: URL do Azure Blob Storage no qual os dados são armazenados, geralmente no formato
https://blobstoragename.blob.core.windows.net/dirname/object_name
. - Ponto Final Privado do Azure Blob: Endereço IP do ponto final privado do Azure Blob Storage. Se não existir um ponto final privado, crie um e anote o endereço IP.
- No menu do OCI, selecione Gerenciamento de Rede/DNS para criar uma Zona de DNS Privada. Na nova Zona de DNS Privado, adicione um registro para o nome do Azure Blob Storage na etapa 1 para resolver o endereço IP do ponto final privado do Azure Blob na etapa 1.
- No menu do OCI, selecione Gerenciamento de Rede/DNS e crie uma View Privada de DNS. Adicione a Zona de DNS Privada criada na etapa 2 a essa view privada de DNS recém-criada e ative as alterações.
- No menu do OCI, selecione Rede/Rede de Cliente Virtual (VCN). Selecione a VCN criada quando o OracleDB for Azure para o Oracle Exadata Database Service on Dedicated Infrastructure foi provisionado (altere o compartimento, se necessário). Selecione o link do resolvedor de DNS e adicione a View Privada de DNS criada anteriormente para o resolvedor de DNS.Isso permite a resolução de nomes e endereços IP do Oracle Exadata Database Service on Dedicated Infrastructure para o ponto final privado do Azure Blob Storage.
- Faça log-in em um dos nós do Cluster de VMs do Oracle Exadata Database Service on Dedicated Infrastructure para usar o comando
nslookup
para verificar se a resolução do nome do host para o endereço IP está funcionando para o nome do host e o IP do ponto final privado do Azure SQL Server.Por exemplo:[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 ~]$
As variáveis do exemplo têm os seguintes valores:- blobstoragename é o nome do Azure Blob Storage na etapa 1.
- IP_address_of_Azure_Blob_private_endpoint é o endereço IP do ponto final privado do Azure Blob na etapa 1.
- Faça log-in no banco de dados plugável do Oracle Exadata Database Service on Dedicated Infrastructure para criar ou selecionar um usuário para ter a atribuição
cloud_user
. Observe o nome de usuário e a senha do usuário. Os usuários com a atribuição cloud_user terão o privilégio de usar o pacoteDBMS_CLOUD
. - Instale o pacote
DBMS_CLOUD
no banco de dados 19c ou mais recente do Oracle Exadata Database Service on Dedicated Infrastructure seguindo o artigo do My Oracle Support How to Setup and Use DBMS_CLOUD Package (Doc ID 2748362.1). Consulte a seção Revisar Documentação para obter detalhes. Observe o seguinte ao instalar o pacoteDBMS_CLOUD
:- Na seção do artigo do My Oracle Support Conceder os privilégios mínimos a um usuário ou função para usar DBMS_CLOUD, use o nome de usuário criado na etapa 6.
- Na seção de artigo do My Oracle Support Criar Wallet SSL com Certificados, esta etapa adicionará certificados raiz à wallet SSL. Você pode ignorar a criação da etapa da wallet porque o Oracle Exadata Database Service on Dedicated Infrastructure já tem uma wallet para gerenciar certificados SSL (a Wallet da Grade). Em vez disso, adicione os certificados raiz à Wallet da Grade, que está localizada em
/var/opt/oracle/dbaas_acfs/grid/tcps_wallets
. Você precisará da senha do Grid Wallet para adicionar os certificados raiz. Consulte o artigo Get Password of ASM and Wallets (Doc ID 2814361.1) do My Oracle Support na seção Review Documentation para obter detalhes sobre como obter a senha do Grid Wallet.
- Faça log-in no banco de dados plugável do Oracle Exadata Database Service on Dedicated Infrastructure para criar uma credencial do Azure usando o pacote
DBMS_CLOUD
instalado na etapa 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; /
As variáveis do exemplo têm os seguintes valores:- exadb_name é o nome do banco de dados Oracle Exadata Database Service on Dedicated Infrastructure.
- Username_From_Step_6 é o nome de usuário da etapa 6.
- Password_From_Step_6 é a senha da etapa 6.
- pdbname é o nome do banco de dados plugável.
- Azure_Blob_Storage_Username_from_Step_1 é o nome de usuário do Azure Blob Storage na etapa 1.
- Azure_Blob_Storage_Password_from_Step_1 é a senha do Azure Blob Storage na etapa 1.
- Depois que a credencial do Azure for criada, crie uma tabela externa para acessar o(s) objeto(s) do Azure Blob Storage da seguinte forma:
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 exemplo, se o objeto Blob a ser acessado for um arquivo de texto separado por vírgula com 3 colunas, o comando poderá se parecer com: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; /
- Execute uma consulta para verificar se o banco de dados plugável do Oracle Exadata Database Service on Dedicated Infrastructure pode consultar as tabelas criadas acima.Por exemplo:
select count(*) from Table_Name
Table_Name é o nome de uma tabela no seu banco de dados a ser consultada.