Operações em Lote para Arquivos na Nuvem
O pacote PL/SQL DBMS_CLOUD
oferece suporte a 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
suporta o carregamento e o descarregamento de arquivos nos seguintes serviços de nuvem:
-
Oracle Cloud Infrastructure Object Storage
-
Armazenamento do Blob do Azure ou Armazenamento do Data Lake do Azure
-
Amazon S3
-
Compatível com Amazon S3, incluindo 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
As operações de arquivos em massaDBMS_CLOUD
suportam o download e o upload de arquivos no Autonomous Database, incluindo suporte para copiar, mover e excluir arquivos nos Cloud Object Stores, 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. - Bulk Download Files from 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. - Arquivos de Exclusão 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 Carregamentos de Arquivos em Massa
Todas as operações de carregamento 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 que você usa 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 nos Cloud Object Stores, 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. 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
: Processar arquivos em ordem serial (sem simultaneidade).
A execução de operações em massa com prioridade mais alta usa mais recursos de banco de dados e as operações são concluídas com mais rapidez 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 operações em massa envolvem pequenos números de arquivos que contêm poucos dados, especificar prioridade mais alta pode não alterar o desempenho.
Para aumentar o paralelismo das operações de arquivo 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 Gerenciar Simultaneidade e Prioridades no Autonomous Database para obter mais informações.
Consulte DBMS_CLOUD para Gerenciamento de Arquivos em Massa para obter detalhes sobre o uso do parâmetro format
para especificar o priority
com operações de arquivos em massa.
Tópico principal: Operações em Massa para Arquivos na Nuvem
Cópia em Massa de Arquivos 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 Massa para Arquivos na Nuvem
Mover Arquivos em Massa no 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 sucesso, eles serão excluídos do local de origem.
Os arquivos serão renomeados em vez de copiados se o Object Store 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 Massa para Arquivos na Nuvem
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 Cloud Object Store para o objeto de diretório em um Autonomous Database.
Tópico principal: Operações em Massa 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 Cloud Object Store.
Tópico principal: Operações em Massa 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 Massa para Arquivos na Nuvem
Monitorar e Solucionar Problemas de Carregamentos de Arquivos 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 views 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 views para ver informações sobre operações de arquivos 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 relevante e a mensagem são gravados 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 START_TIME
e END_TIME
relatados.
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 êxito. |
|
Falha na operação de arquivo. Uma nova tentativa pode ser feita duas vezes. |
|
A operação de arquivo ainda não foi iniciada. |
|
A operação de arquivos está em andamento no momento. |
|
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 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 as tabelas de status:
-
logretention
: Especifica um valor inteiro que determina a duração em dias da retenção da tabela de status. 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 Massa para Arquivos na Nuvem
Observações para Operações de Arquivo em Massa
Fornece observações para as credenciais que você usa 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:- Principais de Recursos do Oracle Cloud Infrastructure
- Nomes de recursos (ARN) da AWS Amazon
- 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
, osource_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 Massa para Arquivos na Nuvem