Operações em Lote para Arquivos na Nuvem
O pacote PL/SQL DBMS_CLOUD
oferece suporte à execução paralela para atividades de upload, download, cópia e transferência de arquivos em massa, o que agiliza a experiência do usuário e oferece desempenho ideal para operações de arquivos em massa.
O pacote DBMS_CLOUD
oferece suporte para carregar e descarregar arquivos nos seguintes serviços de nuvem:
-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage ou Azure Data Lake Storage
-
Amazon S3
-
Compatível com Amazon S3, incluindo o Wasabi Hot Cloud Storage
-
Google Cloud Storage
Consulte DBMS_CLOUD Package File URI Formats para obter mais informações.
- Sobre Operações de Arquivos em Massa
DBMS_CLOUD
operações de arquivos em massa suportam download e upload de arquivos no Autonomous Database, incluindo suporte para copiar, mover e excluir arquivos em Armazenamentos de Objetos na Nuvem, dentro do mesmo provedor de Armazenamento de Objetos ou entre provedores de Armazenamento de Objetos. - Arquivos de Cópia em Massa no Cloud Object Storage
Use o procedimentoDBMS_CLOUD.BULK_COPY
para copiar em massa arquivos de um bucket ou pasta do Object Store para outro bucket ou pasta. - Mover Arquivos em Massa no Cloud Object Storage
Use o procedimentoDBMS_CLOUD.BULK_MOVE
para mover arquivos em massa de um local do Cloud Object Storage para outro. - Fazer Download em Massa de Arquivos do Cloud Object Storage
Use o procedimentoDBMS_CLOUD.BULK_DOWNLOAD
para fazer download em massa de arquivos do local do Cloud Object Store para o objeto de diretório em um Autonomous Database. - Fazer Upload em Massa de Arquivos para o Cloud Object Storage
Use o procedimentoDBMS_CLOUD.BULK_UPLOAD
para fazer upload em massa de arquivos de um objeto de diretório no banco de dados para um local do Cloud Object Store. - Excluir Arquivos em Massa do Cloud Object Storage
Use o procedimentoDBMS_CLOUD.BULK_DELETE
para excluir arquivos em massa do Cloud Object Storage. - Monitorar e Solucionar Problemas de Cargas de Arquivos em Massa
Todas as operações de carga de dadosDBMS_CLOUD
são registradas nas viewsdba_load_operations
euser_load_operations
. - Observações para Operações de Arquivo em Massa
Fornece observações para as credenciais usadas com operações de arquivo em massa.
Tópico principal: Mover Arquivos
Sobre operações de arquivo em massa
DBMS_CLOUD
suportam o download e o upload de arquivos no Autonomous Database, incluindo suporte para copiar, mover e excluir arquivos entre Armazenamentos de Objetos na Nuvem, dentro do mesmo provedor de Armazenamento de Objetos ou entre provedores de Armazenamento de Objetos.
As operações de arquivo em massa suportam paralelismo e fornecem desempenho ideal para upload, download, cópia e movimentação de arquivos. O paralelismo para operações de arquivo em massa é tratado especificando uma prioridade para uma operação. As prioridades apoiadas são:
HIGH
: Use a contagem de computação de CPU da instância do Autonomous Database para determinar o número de arquivos paralelos processados.MEDIUM
: Use o limite de simultaneidade para o serviço Médio para determinar o paralelismo.LOW
: Processe arquivos em ordem serial (sem simultaneidade).
A execução de operações em massa com uma prioridade mais alta usa mais recursos de banco de dados e as operações são concluídas mais rapidamente quando o paralelismo pode acelerar a operação. Uma prioridade mais baixa consome menos recursos de banco de dados e as operações demoram mais para serem concluídas quando o paralelismo pode acelerar a operação. Quando as operações em massa envolvem pequenos números de arquivos que contêm poucos dados, a especificação de prioridade mais alta pode não alterar o desempenho.
Para aumentar o paralelismo de operações de arquivos em massa, use a prioridade HIGH
e aumente o número de CPUs designadas à sua instância do Autonomous Database. O máximo de operações de arquivo simultâneas suportadas é limitado a 64 para operações de arquivo em massa.
A prioridade padrão é MEDIUM
, que especifica que as operações de arquivo em massa usam o limite de simultaneidade definido para o grupo de consumidores MEDIUM. Consulte mais informações em Gerenciar Simultaneidade e Prioridades no Autonomous Database.
Consulte DBMS_CLOUD para Gerenciamento de Arquivos em Massa para obter detalhes sobre como usar o parâmetro format
para especificar o priority
com operações de arquivo em massa.
Tópico principal: Operações em Lote para Arquivos na Nuvem
Cópia de Arquivos em Massa no Cloud Object Storage
Use o procedimento DBMS_CLOUD.BULK_COPY
para copiar em massa arquivos de um bucket ou pasta do Object Store para outro bucket ou pasta.
Por exemplo, use DBMS_CLOUD.BULK_COPY
para copiar arquivos do Amazon S3 para o Oracle Cloud Infrastructure Object Storage.
BEGIN
DBMS_CLOUD.BULK_COPY
(
source_credential_name => 'AWS_CRED',
source_location_uri => 'https://bucketname.s3-us-west-2.amazonaws.com/',
target_credential_name => 'OCI_CRED',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
Tópico principal: Operações em Lote para Arquivos na Nuvem
Mover Arquivos em Massa pelo Cloud Object Storage
DBMS_CLOUD.BULK_MOVE
para mover arquivos em massa de um local do Cloud Object Storage para outro.
A primeira etapa na movimentação de arquivos é copiá-los para o local de destino. Depois que os arquivos forem copiados com êxito, eles serão excluídos do local de origem.
Os arquivos serão renomeados em vez de copiados se o Armazenamento de Objetos permitir a renomeação de operações entre os locais de origem e de destino.
Por exemplo, use DBMS_CLOUD.BULK_MOVE
para mover arquivos do Amazon S3 para o Oracle Cloud Infrastructure Object Storage.
BEGIN
DBMS_CLOUD.BULK_MOVE
(
source_credential_name => 'AWS_CRED',
source_location_uri => 'https://bucketname.s3-us-west-2.amazonaws.com/',
target_credential_name => 'OCI_CRED',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
Tópico principal: Operações em Lote para Arquivos na Nuvem
Fazer Download de Arquivos em Massa do Cloud Object Storage
Use o procedimento DBMS_CLOUD.BULK_DOWNLOAD
para fazer download em massa de arquivos do local do Armazenamento de Objetos na Nuvem para o objeto de diretório em um Autonomous Database.
Tópico principal: Operações em Lote para Arquivos na Nuvem
Fazer Upload de Arquivos em Massa para o Cloud Object Storage
Use o procedimento DBMS_CLOUD.BULK_UPLOAD
para fazer upload em massa de arquivos de um objeto de diretório no banco de dados para um local do Armazenamento de Objetos na Nuvem.
Tópico principal: Operações em Lote para Arquivos na Nuvem
Excluir Arquivos em Massa do Cloud Object Storage
Use o procedimento DBMS_CLOUD.BULK_DELETE
para excluir arquivos em massa do Cloud Object Storage.
Tópico principal: Operações em Lote para Arquivos na Nuvem
Monitorar e Solucionar Problemas de Cargas de Arquivo em Massa
Todas as operações de carregamento de dados DBMS_CLOUD
são registradas nas views dba_load_operations
e user_load_operations
.
Você pode usar as seguintes exibições para monitorar e solucionar problemas de carregamentos de arquivos em massa:
-
dba_load_operations
: mostra todas as operações de carga. -
user_load_operations
: mostra as operações de carga no seu esquema.
Consulte essas exibições para ver informações sobre operações de arquivo em massa em andamento e concluídas. Por exemplo, a seguinte instrução SELECT
com um predicado de cláusula WHERE
na TYPE
mostra operações DOWNLOAD
:
SELECT owner_name, type, status, start_time, update_time, status_table, rows_loaded
FROM user_load_operations WHERE type = 'DOWNLOAD';
OWNER_NAME TYPE STATUS START_TIME UPDATE_TIME STATUS_TABLE ROWS_LOADED
---------- -------- --------- ------------------------ ------------------------ ------------ -----------
"ADMIN" DOWNLOAD COMPLETED 2022-10-17T20:42:19.498Z 2022-10-17T20:42:21.054Z DWN$2_STATUS 4
"ADMIN" DOWNLOAD FAILED 2022-10-17T20:40:54.348Z 2022-10-17T20:40:55.679Z DWN$1_STATUS
A coluna STATUS_TABLE
mostra o nome da tabela que você pode consultar para verificar informações de log detalhadas da operação de download em massa. Por exemplo:
DESCRIBE DWN$2_STATUS
Name Null? Type
------------- -------- ---------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(4000)
BYTES NUMBER
CHECKSUM VARCHAR2(128)
LAST_MODIFIED TIMESTAMP(6) WITH TIME ZONE
STATUS VARCHAR2(30)
ERROR_CODE NUMBER
ERROR_MESSAGE VARCHAR2(4000)
START_TIME TIMESTAMP(6) WITH TIME ZONE
END_TIME TIMESTAMP(6) WITH TIME ZONE
SID NUMBER
SERIAL# NUMBER
ROWS_LOADED NUMBER
SELECT id, name, bytes, status, error_message, start_time, end_time FROM DWN$2_STATUS;
ID NAME BYTES STATUS ERROR_MESSAGE START_TIME END_TIME
-- ---------- ----- --------- ------------- ------------------------ ------------------------
1 trees.txt 58 COMPLETED 2022-10-17T20:42:19.998Z 2022-10-17T20:42:20.421Z
2 trees1.txt 58 COMPLETED 2022-10-17T20:42:20.425Z 2022-10-17T20:42:20.533Z
3 trees2.txt 58 COMPLETED 2022-10-17T20:42:20.535Z 2022-10-17T20:42:20.894Z
4 trees3.txt 58 COMPLETED 2022-10-17T20:42:20.896Z 2022-10-17T20:42:21.043Z
A tabela de status mostra cada nome de arquivo e seu status para a operação em massa.
O número de erro e a mensagem relevantes serão registrados na tabela de status se uma operação em um arquivo específico falhar.
Para operações concluídas, o tempo necessário para cada operação pode ser calculado usando o tempo informado START_TIME
e END_TIME
.
A coluna STATUS
da operação de arquivo pode ter um dos seguintes valores:
Status do Arquivo | Descrição |
---|---|
|
Operação de arquivo concluída com sucesso. |
|
Falha na operação do arquivo; pode ser tentada uma nova tentativa duas vezes. |
|
A operação de arquivo ainda não foi iniciada. |
|
A operação de arquivo está em andamento atualmente. |
|
Operação de arquivo ignorada. |
Se qualquer operação de arquivo falhar após duas tentativas de repetição, a operação em massa será marcada como com falha e um erro será gerado. Por exemplo:
ORA-20003: Operation failed, please query table DOWNLOAD$2_STATUS for error details
Quando você usa uma operação de arquivo em massa DBMS_CLOUD
, há opções de parâmetro format
que controlam tabelas de status:
-
logretention
: Especifica um valor inteiro que determina a duração em dias em que a tabela de status é retida. O valor default é 2 dias. -
logprefix
: Especifica um valor de string que determina o prefixo de nome da tabela de status da operação em massa.Cada operação em massa tem seu próprio valor padrão para a opção
logprefix
:Procedimento Valor padrão para logprefix
DBMS_CLOUD.BULK_COPY
COPYOBJ
DBMS_CLOUD.BULK_DELETE
DELETE
DBMS_CLOUD.BULK_DOWNLOAD
DOWNLOAD
DBMS_CLOUD.BULK_MOVE
MOVE
DBMS_CLOUD.BULK_UPLOAD
UPLOAD
Consulte Procedimento DELETE_ALL_OPERATIONS para obter informações sobre como limpar a tabela user_load_operations
.
Tópico principal: Operações em Lote para Arquivos na Nuvem
Notas para operações de arquivo em massa
Fornece observações para as credenciais usadas com operações de arquivo em massa.
-
Você pode especificar principais como o parâmetro
credential_name
,source_credential_name
outarget_credential_name
para acessar recursos da nuvem com segurança sem armazenar credenciais do usuário. Os principais suportados são:- Controlador de Recursos do Oracle Cloud Infrastructure
- ARNs (Amazon Resource Names) da AWS
- Controlador de serviços do Azure
- Conta do Google Service
Consulte Configurar Políticas e Atribuições para Acessar Recursos para obter mais informações.
-
O
credential_name
,source_credential_name
ou otarget_credential_name
podem serNULL
para URI de bucket público, Pré-autenticado ou Pré-assinado.
Tópico principal: Operações em Lote para Arquivos na Nuvem