Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonversi string ID versi kosong di laporan Inventaris Amazon S3 menjadi string null
catatan
Prosedur berikut hanya berlaku untuk laporan Inventaris Amazon S3 yang menyertakan semua versi, dan hanya jika laporan “semua versi” digunakan sebagai manifes untuk Operasi Batch S3 pada bucket yang mengaktifkan Versi S3. Anda tidak diharuskan mengonversi string untuk laporan Inventaris S3 yang hanya menentukan versi saat ini.
Anda dapat menggunakan laporan Inventaris S3 sebagai manifes untuk Operasi Batch S3. Namun, saat Penentuan Versi S3 diaktifkan di bucket, laporan Inventaris S3 yang menyertakan semua versi menandai objek berversi nol dengan string kosong di bidang ID versi. Ketika Laporan Inventaris menyertakan semua versi objekIDs, Operasi Batch mengenali null
string sebagai versiIDs, tetapi bukan string kosong.
Saat tugas Operasi Batch S3 menggunakan laporan Inventaris S3 “semua versi” sebagai manifes, tugas tersebut menggagalkan semua tugas pada objek yang memiliki string kosong di bidang ID versi. Untuk mengonversi string kosong di bidang ID versi laporan Inventaris S3 menjadi string null
untuk Operasi Batch, gunakan prosedur berikut.
Memperbarui laporan Inventaris Amazon S3 untuk digunakan dengan Operasi Batch
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Buka laporan Inventaris S3. Laporan inventaris terletak di bucket tujuan yang Anda tentukan saat mengonfigurasi laporan inventaris. Untuk informasi selengkapnya tentang cara menemukan laporan inventaris, lihat Menemukan daftar inventaris.
-
Pilih bucket tujuan.
-
Pilih folder. Folder ini dinamai bucket sumber asli.
-
Pilih folder yang dinamai konfigurasi inventaris.
-
Centang kotak di samping folder bernama hive. Di bagian atas halaman, pilih Salin S3 URI untuk menyalin S3 URI untuk folder.
-
-
Buka konsol Amazon Athena di. https://console.aws.amazon.com/athena/
-
Di editor kueri, pilih Pengaturan, lalu pilih Kelola. Pada halaman Kelola pengaturan, untuk Lokasi hasil kueri, pilih bucket S3 untuk menyimpan hasil kueri Anda.
-
Di editor kueri, buat tabel Athena untuk menyimpan data dalam laporan inventaris menggunakan perintah berikut. Ganti
dengan nama yang Anda pilih, dan dalamtable_name
LOCATION
klausa, masukkan S3 URI yang Anda salin sebelumnya. Kemudian pilih Jalankan untuk menjalankan kueri.CREATE EXTERNAL TABLE
table_name
(bucket string, key string, version_id string) PARTITIONED BY (dt string)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat' LOCATION 'Copied S3 URI
'; -
Untuk menghapus editor kueri, pilih Hapus. Kemudian muat laporan inventaris ke dalam tabel menggunakan perintah berikut. Ganti
dengan yang Anda pilih pada langkah sebelumnya. Kemudian pilih Jalankan untuk menjalankan kueri.table_name
MSCK REPAIR TABLE
table_name
; -
Untuk menghapus editor kueri, pilih Hapus. Jalankan
SELECT
kueri berikut untuk mengambil semua entri dalam laporan inventaris asli dan mengganti versi kosong IDs dengannull
string. Ganti
dengan yang Anda pilih sebelumnya, dan gantitable_name
dalam klausaYYYY-MM-DD-HH-MM
WHERE
dengan tanggal laporan inventaris yang Anda ingin alat ini dijalankan. Kemudian pilih Jalankan untuk menjalankan kueri.SELECT bucket as Bucket, key as Key, CASE WHEN version_id = '' THEN 'null' ELSE version_id END as VersionId FROM
table_name
WHERE dt = 'YYYY-MM-DD-HH-MM
'; -
Kembali ke konsol Amazon S3 (https://console.aws.amazon.com/s3/
), dan navigasikan ke bucket S3 yang Anda pilih untuk Lokasi hasil kueri sebelumnya. Di dalam, akan ada serangkaian folder yang diakhiri dengan tanggal. Misalnya, Anda akan melihat sesuatu seperti s3://
/amzn-s3-demo-bucket
query-result-location
/Tidak disimpan/2021/10/07/. Anda akan melihat file.csv
yang berisi hasil kueriSELECT
yang Anda jalankan.Pilih CSV file dengan tanggal modifikasi terbaru. Unduh file ini ke mesin lokal Anda untuk langkah selanjutnya.
-
CSVFile yang dihasilkan berisi baris header. Untuk menggunakan CSV file ini sebagai masukan untuk pekerjaan Operasi Batch S3, Anda harus menghapus baris header, karena Operasi Batch tidak mendukung baris header pada CSV manifes.
Untuk menghapus baris header, Anda dapat menjalankan salah satu perintah berikut pada file. Ganti
dengan nama CSV file Anda.file.csv
Untuk mesin macOS dan Linux, jalankan perintah
tail
di jendela Terminal.tail -n +2
file.csv
> tmp.csv && mv tmp.csvfile.csv
Untuk mesin Windows, jalankan skrip berikut di PowerShell jendela Windows. Ganti
dengan jalur ke file Anda, danFile-location
dengan nama file.file.csv
$ins = New-Object System.IO.StreamReader
File-location
\file.csv
$outs = New-Object System.IO.StreamWriterFile-location
\temp.csv try { $skip = 0 while ( !$ins.EndOfStream ) { $line = $ins.ReadLine(); if ( $skip -ne 0 ) { $outs.WriteLine($line); } else { $skip = 1 } } } finally { $outs.Close(); $ins.Close(); } Move-ItemFile-location
\temp.csvFile-location
\file.csv
-Force -
Setelah menghapus baris header dari CSV file, Anda siap menggunakannya sebagai manifes dalam pekerjaan Operasi Batch S3. Unggah CSV file ke bucket S3 atau lokasi yang Anda pilih, lalu buat pekerjaan Operasi Batch menggunakan CSV file sebagai manifes.
Untuk informasi selengkapnya tentang cara membuat tugas Operasi Batch, lihat Membuat pekerjaan Operasi Batch S3.