Cloud Storage è una parte fondamentale dell'archiviazione e dell'utilizzo dei big data su in Google Cloud. Ad esempio, puoi utilizzare Cloud Storage per caricare i dati in BigQuery, conservare i file temporanei e i dati temporanei le pipeline di Dataflow e l'integrazione con Dataproc, puoi eseguire job Apache Hadoop o Apache Spark direttamente sui tuoi dati di archiviazione ideale in Cloud Storage.
Questa pagina descrive come utilizzare lo strumento a riga di comando gcloud per eseguire attività relative ai big data, ad esempio copiare file di grandi dimensioni o molti file parallelo. Per un'introduzione a gcloud, consulta la guida rapida di gcloud.
Prima di iniziare
Per ottenere il massimo dagli esempi mostrati in questa pagina, devi completare (se non l'hai ancora fatto):
- Installa gcloud CLI.
- Inizializza gcloud CLI.
Copia di molti file in un bucket in corso...
Il comando cp
carica in modo efficiente grandi quantità di file tramite
eseguire copie parallele (multi-thread/multi-elaborazione) in base alle esigenze. A
per copiare le sottodirectory in modo ricorsivo, usa il flag --recursive
nel comando.
Ad esempio, per copiare file comprese le sottodirectory da una directory locale
denominato top-level-dir
a un bucket, puoi usare:
gcloud storage cp top-level-dir gs://example-bucket --recursive
Puoi utilizzare i caratteri jolly per far corrispondere un insieme specifico di
i nomi di un'operazione. Ad esempio, per copiare solo i file che iniziano con image
:
gcloud storage cp top-level-dir/subdir/image* gs://example-bucket --recursive
Puoi rimuovere file utilizzando lo stesso carattere jolly:
gcloud storage rm gs://example-bucket/top-level-dir/subdir/image*
Oltre a copiare i file locali nel cloud e viceversa, puoi anche copia nel cloud, ad esempio:
gcloud storage cp gs://example-bucket/top-level-dir/subdir/** gs://example-bucket/top-level-dir/subdir/subdir2
gcloud storage
rileva automaticamente che stai spostando più file e
li crea in una nuova directory denominata subdir2
.
Sincronizzazione di una directory locale
Se vuoi sincronizzare una directory locale con un bucket o viceversa,
puoi farlo con il comando gcloud storage rsync
. Ad esempio:
in modo che gs://example-bucket
corrisponda al contenuto della directory locale
local-dir
puoi utilizzare:
gcloud storage rsync local-dir gs://example-bucket --recursive
L'utilizzo del flag --delete-unmatched-destination-objects
indica
per eliminare i file nella destinazione
(gs://example-bucket
nel comando precedente) che non sono presenti nel
origine (local-dir
). Puoi anche eseguire la sincronizzazione tra due bucket.
Copia di file di grandi dimensioni in un bucket
In generale, quando si lavora con i big data, una volta che i dati sono nel cloud dovrebbe rimanere lì. Una volta che i dati sono in Google Cloud, è molto veloce e trasferirlo in altri servizi nella stessa località, ad esempio Compute Engine.
Per copiare un file locale di grandi dimensioni in un bucket, usa:
gcloud storage cp local-file gs://example-bucket
Per copiare un file di grandi dimensioni da un bucket esistente, usa:
gcloud storage cp gs://example-source-bucket/file gs://example-destination-bucket
gcloud storage
sfrutta appieno il caricamento ripristinabile di Cloud Storage e
funzionalità di download. Per i file di grandi dimensioni questo è particolarmente importante perché
la probabilità di un errore di rete presso il tuo ISP aumenta con la dimensione dei dati
in fase di trasferimento. Riprendendo un caricamento in base al numero di byte del server
effettivamente ricevuto, gcloud storage
evita
di nuovo inutilmente byte e assicura che il caricamento alla fine
essere completato. Per i download viene applicata la stessa logica, in base alle dimensioni dei
locale.
Configurazione di un bucket
Le tipiche attività di big data in cui si desidera configurare un bucket includono quando Spostare i dati in un'altra classe di archiviazione configurare il controllo delle versioni degli oggetti oppure un regola del ciclo di vita.
Puoi elencare i dettagli di configurazione di un bucket con buckets describe
:
gcloud storage buckets describe gs://example-bucket
Nell'output, puoi notare le informazioni di configurazione del bucket, la maggior parte delle quali sono
configurabile anche tramite gcloud storage
:
- CORS: controlla la condivisione delle risorse tra origini le impostazioni di un bucket.
- Sito web: consente gli oggetti nel che funga da pagine web o che possa essere utilizzato come asset statici in un sito web.
- Controllo delle versioni: provoca eliminazioni di oggetti nel bucket per creare versioni non correnti.
- Classe di archiviazione: consente di impostare di archiviazione durante la creazione del bucket.
- Ciclo di vita: consente l'esecuzione di operazioni periodiche nel bucket. La più comune è l'eliminazione di oggetti inattivi.
Ad esempio, supponiamo che tu voglia conservare i file in un determinato bucket per un solo giorno, puoi configurare la regola del ciclo di vita per il bucket con:
echo '{ "rule": [{ "action": {"type": "Delete"}, "condition": {"age": 1}}]}' > lifecycle_config.json
gcloud storage buckets update gs://example-bucket --lifecycle-file=lifecycle_config.json
Ora, tutti gli oggetti del bucket più vecchi di un giorno verranno eliminati automaticamente
da questo bucket. Puoi verificare la configurazione che hai appena impostato con il
Comando buckets describe
(altri comandi di configurazione funzionano in una
in modo simile):
gcloud storage buckets describe gs://example-bucket
Condivisione dei dati in un bucket
Quando lavori con i big data, probabilmente lavorerai sui file in modo collaborativo
devi poter dare accesso a persone o gruppi specifici.
I criteri di Identity and Access Management definiscono chi può accedere ai tuoi file e cosa è consentito
da fare. Puoi visualizzare il criterio IAM di un bucket utilizzando
Comando buckets get-iam-policy
:
gcloud storage buckets get-iam-policy gs://example-bucket
La risposta al comando mostra le entità, ovvero gli account gli utenti possono accedere al tuo bucket e i ruoli, che sono gruppi autorizzazioni concesse alle entità.
Tre scenari comuni per la condivisione dei dati sono la condivisione pubblica, la condivisione con un gruppo e la condivisione con una persona:
Condivisione pubblica: per un bucket i cui contenuti devono essere elencati e letti da chiunque su internet, puoi configurare utilizzando il criterio "AllUsers" designazione:
bucket di archiviazione gcloud add-iam-policy-binding gs://example-bucket --member=allUsers --role=roles/storage.objectViewer
Condivisione con un gruppo: per i collaboratori che non hanno accesso al tuo altre risorse Google Cloud, ti consigliamo crea un gruppo Google e aggiungilo al bucket. Ad esempio, per concedere l'accesso al gruppo Google
my-group
, puoi configurare il seguente criterio IAM:bucket di archiviazione gcloud add-iam-policy-binding gs://example-bucket --member=group:my-group@googlegroups.com --role=roles/storage.objectViewer
Per ulteriori informazioni, consulta la sezione Utilizzo di un gruppo per controllare l'accesso agli oggetti.
Condivisione con una sola persona: per molti collaboratori, utilizza un gruppo per concedere per accedere in blocco. A una persona, puoi concedere l'accesso in lettura come segue:
bucket di archiviazione gcloud add-iam-policy-binding gs://example-bucket --member=user:liz@gmail.com --role=roles/storage.objectViewer
Ripulire un bucket
Puoi pulire rapidamente un bucket con il seguente comando:
gcloud storage rm gs://example-bucket/ --recursive
Utilizzo dei checksum
Quando esegui delle copie, i gcloud storage cp
e gcloud storage rsync
convalidano che il checksum del file di origine corrisponda al checksum
del file di destinazione. Nel raro caso in cui i checksum non corrispondano,
gcloud storage
elimina la copia non valida e stampa un messaggio di avviso. Per ulteriori informazioni
informazioni, consulta la sezione sulla convalida del checksum.
Puoi utilizzare gcloud storage
per ottenere il checksum di un oggetto in un bucket. Per
Ad esempio, supponi di copiare un dati pubblici Landsat
al tuo bucket di lavoro con:
gcloud storage cp gs://gcp-public-data-landsat/LC08/01/001/003/LC08_L1GT_001003_20140812_20170420_01_T2/LC08_L1GT_001003_20140812_20170420_01_T2_B3.TIF gs://example-bucket
Ora puoi ottenere i checksum di entrambe le versioni del bucket pubblico e la tua versione del file nel bucket per assicurarti che corrispondano:
gcloud storage objects describe gs://example-bucket/LC08_L1GT_001003_20140812_20170420_01_T2_B3.TIF
gcloud storage objects describe gs://gcp-public-data-landsat/LC08/01/001/003/LC08_L1GT_001003_20140812_20170420_01_T2/LC08_L1GT_001003_20140812_20170420_01_T2_B3.TIF
Puoi anche utilizzare gcloud storage
per calcolare il checksum di un file locale. Per
Ad esempio, supponiamo che i dati si trovino in un file in un data center locale e che li abbia copiati
in Cloud Storage. Puoi utilizzare gcloud storage hash
per ottenere il checksum del file locale e poi confrontarlo con il checksum
del file copiato in un bucket. Per ottenere il checksum di un file locale, utilizza:
gcloud storage hash local-file
Valori MD5
Per gli oggetti non composti, l'esecuzione di gcloud storage objects describe
su un
in un bucket restituisce un output come il seguente:
bucket: example-bucket contentType: text/plain crc32c: FTiauw== customTime: '1970-01-01T00:00:00+00:00' etag: CPjo7ILqxsQCEAE= generation: '1629833823159214' id: example-bucket/100MBfile.txt/1629833823159214 kind: storage#object md5Hash: daHmCObxxQdY9P7lp9jj0A== ...
L'esecuzione di gcloud storage hash
su un file locale restituisce un output come il seguente:
--- crc32c_hash: IJfuvg== digest_format: base64 md5_hash: +bqpwgYMTRn0kWmp5HXRMw== url: file.txt
Entrambe le uscite hanno un valore CRC32c e MD5. Nessun valore MD5 per l'elemento composito di oggetti, come quelli creati da caricamenti compositi paralleli.