Operazioni di massa per i file nel cloud
Il package PL/SQL DBMS_CLOUD
offre il supporto dell'esecuzione parallela per le attività di caricamento, download, copia e trasferimento di file in blocco, semplificando l'esperienza utente e offrendo prestazioni ottimali per le operazioni dei file in blocco.
Il pacchetto DBMS_CLOUD
supporta il caricamento e lo scaricamento di file nei seguenti servizi cloud:
-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage
-
Amazon S3
-
Google Cloud Storage
Per ulteriori informazioni, vedere DBMS_CLOUD Formati URI file pacchetto.
Argomenti correlati
Informazioni sulle operazioni file di massa
DBMS_CLOUD
supportano il download e il caricamento di file su Autonomous Database, incluso il supporto per la copia, lo spostamento e l'eliminazione di file tra le aree di memorizzazione degli oggetti nel cloud, all'interno dello stesso provider dell'area di memorizzazione degli oggetti o tra i provider dell'area di memorizzazione degli oggetti.
Le operazioni dei file in blocco supportano il parallelismo e forniscono prestazioni ottimali per il caricamento, il download, la copia e lo spostamento dei file. Il parallelismo per le operazioni dei file in blocco viene gestito specificando una priorità per un'operazione. Le priorità supportate sono le seguenti:
HIGH
: utilizzare il conteggio di calcolo della CPU dell'istanza di Autonomous Database per determinare il numero di file paralleli elaborati.MEDIUM
: utilizzare il limite di concorrenza per il servizio Medio per determinare il parallelismo.LOW
: elabora i file in ordine seriale (nessuna concorrenza).
L'esecuzione di operazioni in blocco con una priorità più elevata utilizza un maggior numero di risorse di database e operazioni completate più velocemente quando il parallelismo può accelerare l'operazione. Una priorità inferiore consuma meno risorse del database e il completamento delle operazioni richiede più tempo quando il parallelismo può accelerare l'operazione. Quando le operazioni in blocco coinvolgono un numero limitato di file che contengono pochi dati, la specifica di una priorità più elevata potrebbe non modificare le prestazioni.
Per aumentare il parallelismo per le operazioni dei file in blocco, utilizzare la priorità HIGH
e aumentare il numero di CPU assegnate all'istanza di Autonomous Database. Il numero massimo di operazioni file concorrenti supportate è limitato a 64 per le operazioni file bulk.
La priorità predefinita è MEDIUM
, che specifica che le operazioni dei file in blocco utilizzano il limite di concorrenza definito per il gruppo di consumer MEDIUM.
Per informazioni dettagliate sull'utilizzo del parametro format
per specificare priority
con operazioni file bulk, vedere DBMS_CLOUD per la gestione dei file in blocco.
In the DBMS_CLOUD subprograms discussed below, the credential_name
, source_credential_name
or the target_credential_name
can be NULL
for public, Pre-authenticated, or Pre-signed bucket URI.
Copia di massa dei file nello storage degli oggetti cloud
Utilizzare la procedura DBMS_CLOUD.BULK_COPY
per copiare in blocco i file da un bucket o una cartella dell'area di memorizzazione degli oggetti a un altro bucket o cartella.
Ad esempio, utilizza DBMS_CLOUD.BULK_COPY
per copiare i file da Amazon S3 a 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;
/
Spostamento di massa dei file nello storage degli oggetti cloud
DBMS_CLOUD.BULK_MOVE
per eseguire lo spostamento in blocco dei file da una posizione di storage degli oggetti cloud a un'altra.
Il primo passo per spostare i file è copiarli nella posizione di destinazione. Una volta copiati correttamente, i file vengono eliminati dalla posizione di origine.
I file vengono rinominati anziché copiati se Object Store consente di rinominare le operazioni tra le posizioni di origine e di destinazione.
Ad esempio, utilizza DBMS_CLOUD.BULK_MOVE
per spostare i file da Amazon S3 a 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;
/
Scaricamento di massa dei file dallo storage degli oggetti cloud
Utilizzare la procedura DBMS_CLOUD.BULK_DOWNLOAD
per eseguire il download di massa dei file dalla posizione dell'area di memorizzazione degli oggetti cloud all'oggetto directory in un Autonomous Database.
Caricamento di massa dei file nello storage degli oggetti cloud
Utilizzare la procedura DBMS_CLOUD.BULK_UPLOAD
per caricare in blocco i file da un oggetto directory nel database in una posizione dell'area di memorizzazione degli oggetti cloud.
Elimina file in blocco da storage degli oggetti cloud
Utilizzare la procedura DBMS_CLOUD.BULK_DELETE
per eliminare in blocco i file dallo storage degli oggetti cloud.
Monitoraggio e risoluzione dei problemi relativi ai caricamenti di file in blocco
Tutte le operazioni di caricamento dati di DBMS_CLOUD
vengono registrate nelle viste dba_load_operations
e user_load_operations
.
È possibile utilizzare le viste riportate di seguito per monitorare e risolvere i problemi relativi ai caricamenti di file in blocco.
-
dba_load_operations
: mostra tutte le operazioni di caricamento. -
user_load_operations
: mostra le operazioni di caricamento nello schema.
Eseguire una query su queste viste per visualizzare informazioni sulle operazioni dei file in blocco in corso e completate. Ad esempio, l'istruzione SELECT
seguente con un predicato di clausola WHERE
in TYPE
mostra le operazioni 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
La colonna STATUS_TABLE
mostra il nome della tabella su cui è possibile eseguire una query per esaminare le informazioni di log dettagliate per l'operazione di scaricamento di massa. Ad esempio:
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
La tabella di stato mostra ogni nome di file e il relativo stato per l'operazione in blocco.
Il numero e il messaggio di errore rilevanti vengono registrati nella tabella di stato se un'operazione su un file specifico non riesce.
Per le operazioni completate, il tempo necessario per ciascuna operazione può essere calcolato utilizzando l'ora riportata START_TIME
e END_TIME
.
La colonna STATUS
dell'operazione file può avere uno dei seguenti valori:
Stato file | Descrizione |
---|---|
|
Operazione file completata. |
|
Operazione file non riuscita. È possibile riprovare due volte. |
|
L'operazione sul file non è stata ancora avviata. |
|
Operazione file attualmente in corso. |
|
L'operazione sul file è stata ignorata. |
Se un'operazione di file non riesce dopo due nuovi tentativi, l'operazione in blocco viene contrassegnata come non riuscita e viene generato un errore. Ad esempio:
ORA-20003: Operation failed, please query table DOWNLOAD$2_STATUS for error details
Quando si utilizza un'operazione file bulk DBMS_CLOUD
, sono disponibili opzioni di parametro format
che controllano le tabelle di stato.
-
logretention
: specifica un valore intero che determina la durata in giorni della conservazione della tabella di stato. Il valore predefinito è 2 giorni. -
logprefix
: specifica un valore stringa che determina il prefisso del nome della tabella dello stato dell'operazione in blocco.Ogni operazione in blocco ha il proprio valore predefinito per l'opzione
logprefix
:Procedura Valore predefinito per 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
Per informazioni sulla cancellazione della tabella user_load_operations
, vedere DELETE_ALL_OPERATIONS Procedura.