

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
<a name="inventory-configure-bops"></a>

**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 objek IDs, Operasi Batch mengenali `null` string sebagai versi IDs, 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**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. 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](storage-inventory-location.md).

   1. Pilih bucket tujuan.

   1. Pilih folder. Folder ini dinamai bucket sumber asli.

   1. Pilih folder yang dinamai konfigurasi inventaris.

   1. Centang kotak di samping folder bernama **hive**. Di bagian atas halaman, pilih **Salin URI S3** guna menyalin URI S3 untuk folder tersebut.

1. Buka konsol Amazon Athena di. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 

1. Di editor kueri, pilih **Pengaturan**, lalu pilih **Kelola**. Pada halaman **Kelola pengaturan**, untuk **Lokasi hasil kueri**, pilih bucket S3 untuk menyimpan hasil kueri Anda.

1. Di editor kueri, buat tabel Athena untuk menyimpan data dalam laporan inventaris menggunakan perintah berikut. Ganti `table_name` dengan nama pilihan Anda, dan dalam klausa `LOCATION`, masukkan URI S3 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';
   ```

1. Untuk menghapus editor kueri, pilih **Hapus**. Kemudian muat laporan inventaris ke dalam tabel menggunakan perintah berikut. Ganti `table_name` dengan yang Anda pilih pada langkah sebelumnya. Kemudian pilih **Jalankan** untuk menjalankan kueri.

   ```
   MSCK REPAIR TABLE table_name;
   ```

1. Untuk menghapus editor kueri, pilih **Hapus**. Jalankan `SELECT` kueri berikut untuk mengambil semua entri dalam laporan inventaris asli dan mengganti versi kosong IDs dengan `null` string. Ganti `table_name` dengan yang Anda pilih sebelumnya, dan ganti `YYYY-MM-DD-HH-MM` dalam klausa `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';
   ```

1. Kembali ke konsol Amazon S3 ([https://console.aws.amazon.com/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**/Unsaved/2021/10/07/ *query-result-location***. Anda akan melihat file `.csv` yang berisi hasil kueri `SELECT` yang Anda jalankan. 

   Pilih file CSV dengan tanggal modifikasi terbaru. Unduh file ini ke mesin lokal Anda untuk langkah selanjutnya.

1. File CSV yang dihasilkan berisi baris header. Untuk menggunakan file CSV ini sebagai input untuk tugas Operasi Batch S3, Anda harus menghapus baris header, karena Operasi Batch tidak mendukung baris header pada manifes CSV. 

   Untuk menghapus baris header, Anda dapat menjalankan salah satu perintah berikut pada file. Ganti *`file.csv`* dengan nama file CSV Anda. 

   **Untuk mesin macOS dan Linux**, jalankan perintah `tail` di jendela Terminal. 

   ```
   tail -n +2 file.csv > tmp.csv && mv tmp.csv file.csv 
   ```

   **Untuk mesin Windows**, jalankan skrip berikut di PowerShell jendela Windows. Ganti `File-location` dengan jalur ke file Anda, dan `file.csv` dengan nama file.

   ```
   $ins = New-Object System.IO.StreamReader File-location\file.csv
   $outs = New-Object System.IO.StreamWriter File-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-Item File-location\temp.csv File-location\file.csv -Force
   ```

1. Setelah menghapus baris header dari file CSV, Anda siap menggunakannya sebagai manifes dalam pekerjaan Operasi Batch S3. Unggah file CSV ke bucket S3 atau lokasi yang Anda pilih, lalu buat pekerjaan Operasi Batch menggunakan file CSV sebagai manifes.

   Untuk informasi selengkapnya tentang cara membuat tugas Operasi Batch, lihat [Membuat pekerjaan Operasi Batch S3](batch-ops-create-job.md).