

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengekspor data jurnal dari Amazon QLDB
<a name="export-journal"></a>

**penting**  
Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat [Memigrasi Buku Besar QLDB Amazon ke Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

*Amazon QLDB menggunakan log transaksional yang tidak dapat diubah, yang dikenal sebagai jurnal, untuk penyimpanan data.* Jurnal melacak setiap perubahan pada data komitmen Anda dan mempertahankan riwayat perubahan yang lengkap dan dapat diverifikasi dari waktu ke waktu.

Anda dapat mengakses isi jurnal di buku besar Anda untuk berbagai tujuan termasuk analitik, audit, retensi data, verifikasi, dan ekspor ke sistem lain. Topik berikut menjelaskan cara mengekspor [blok](journal-contents.md) jurnal dari buku besar Anda ke bucket Amazon Simple Storage Service (Amazon S3) di bucket Anda. Akun AWS Pekerjaan ekspor jurnal menulis data Anda di Amazon S3 sebagai objek baik dalam teks atau representasi biner format [Amazon Ion](ion.md), atau dalam format teks *JSON Lines*.

Dalam format JSON Lines, setiap blok dalam objek data yang diekspor adalah objek JSON yang valid yang dibatasi oleh baris baru. Anda dapat menggunakan format ini untuk mengintegrasikan ekspor JSON secara langsung dengan alat analitik seperti Amazon Athena AWS Glue dan karena layanan ini dapat mengurai JSON yang dibatasi baris baru secara otomatis. Untuk informasi selengkapnya tentang format, lihat [JSON Lines](https://jsonlines.org/).

Untuk informasi tentang Amazon S3, lihat [Panduan Pengguna Layanan Penyimpanan Sederhana Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/).

**catatan**  
Jika Anda menentukan JSON sebagai format output dari pekerjaan ekspor Anda, QLDB akan mengubah data jurnal Ion ke JSON di objek data yang diekspor. Untuk informasi selengkapnya, lihat [Down-convert ke JSON](export-journal.output.md#export-journal.output.json).

**Topics**
+ [Meminta ekspor jurnal di QLDB](export-journal.request.md)
+ [Output ekspor jurnal dalam QLDB](export-journal.output.md)
+ [Izin ekspor jurnal di QLDB](export-journal.perms.md)
+ [Kesalahan umum untuk ekspor jurnal](export-journal.errors.md)

# Meminta ekspor jurnal di QLDB
<a name="export-journal.request"></a>

**penting**  
Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat [Memigrasi Buku Besar QLDB Amazon ke Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

Amazon QLDB menyediakan API untuk meminta ekspor blok jurnal Anda untuk rentang tanggal dan waktu tertentu serta tujuan bucket Amazon S3 yang ditentukan. Pekerjaan ekspor jurnal dapat menulis objek data baik dalam teks atau representasi biner format [Amazon Ion](ion.md), atau dalam format teks [JSON Lines](https://jsonlines.org/). Anda dapat menggunakan Konsol Manajemen AWS, AWS SDK, atau AWS Command Line Interface (AWS CLI) untuk membuat pekerjaan ekspor.

**Topics**
+ [Konsol Manajemen AWS](#export-journal.request.con)
+ [QLDB API](#export-journal.request.api)
+ [Kedaluwarsa pekerjaan ekspor](#export-journal.request.expiration)

## Konsol Manajemen AWS
<a name="export-journal.request.con"></a>

Ikuti langkah-langkah berikut untuk mengirimkan permintaan ekspor jurnal di QLDB menggunakan konsol QLDB.

**Untuk meminta ekspor (konsol)**

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

1. Di panel navigasi, pilih **Ekspor**.

1. Pilih **Buat pekerjaan ekspor**.

1. Pada halaman **Create export job**, masukkan pengaturan ekspor berikut:
   + **Ledger** — Buku besar yang jurnalnya memblokir Anda ingin mengekspor.
   + **Tanggal dan waktu mulai** — Stempel waktu mulai inklusif di Coordinated Universal Time (UTC) dari rentang blok jurnal yang akan diekspor. Stempel waktu ini harus lebih awal dari **tanggal dan waktu Akhir**. Jika Anda memberikan stempel waktu awal yang lebih awal dari buku besar, `CreationDateTime` QLDB mendefaultkannya ke buku besar. `CreationDateTime`
   + **Tanggal dan waktu akhir** - Stempel waktu akhir eksklusif (UTC) dari rentang blok jurnal yang akan diekspor. Tanggal dan waktu ini tidak mungkin di masa depan.
   + **Tujuan untuk blok jurnal** — Bucket Amazon S3 dan nama awalan tempat pekerjaan ekspor Anda menulis objek data. Gunakan format URI Amazon S3 berikut.

     ```
     s3://amzn-s3-demo-qldb-cloudtrail/prefix/
     ```

     Anda harus menentukan nama bucket S3 dan nama awalan opsional untuk objek keluaran. Berikut adalah contohnya.

     ```
     s3://amzn-s3-demo-qldb-cloudtrail/journalExport/
     ```

     Nama bucket dan awalan harus mematuhi aturan dan konvensi penamaan Amazon S3. Untuk informasi selengkapnya tentang penamaan [bucket, lihat Pembatasan dan batasan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) bucket di Panduan *Pengembang Amazon S3*. Untuk informasi selengkapnya tentang awalan nama kunci, lihat [Kunci objek dan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) metadata.
**catatan**  
Ekspor lintas wilayah tidak didukung. Bucket Amazon S3 yang ditentukan harus Wilayah AWS sama dengan buku besar Anda.
   + **Enkripsi S3** - Pengaturan enkripsi yang digunakan oleh pekerjaan ekspor Anda untuk menulis data dalam bucket Amazon S3. *Untuk mempelajari lebih lanjut tentang opsi enkripsi sisi server di Amazon S3, lihat [Melindungi data menggunakan enkripsi sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) di Panduan Pengembang Amazon S3.*
     + **Enkripsi default bucket** — Gunakan pengaturan enkripsi default bucket Amazon S3 yang ditentukan.
     + **AES-256** - Gunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3).
     + **AWS-KMS** — Gunakan enkripsi sisi server dengan AWS KMS kunci terkelola (SSE-KMS).

       Jika Anda memilih jenis ini bersama dengan AWS KMS key opsi **Pilih yang berbeda**, Anda juga harus menentukan kunci KMS enkripsi simetris dalam format Amazon Resource Name (ARN) berikut.

       ```
       arn:aws:kms:aws-region:account-id:key/key-id
       ```
   + **Akses layanan** — Peran IAM yang memberikan izin menulis QLDB di bucket Amazon S3 Anda. Jika berlaku, peran IAM juga harus memberikan izin QLDB untuk menggunakan kunci KMS Anda.

     *Untuk meneruskan peran ke QLDB saat meminta ekspor jurnal, Anda harus memiliki izin untuk melakukan `iam:PassRole` tindakan pada sumber daya peran IAM.*
     + **Buat dan gunakan peran layanan baru** — Biarkan konsol membuat peran baru untuk Anda dengan izin yang diperlukan untuk bucket Amazon S3 yang ditentukan.
     + **Gunakan peran layanan yang ada** — Untuk mempelajari cara membuat peran ini secara manual di IAM, lihat[Izin ekspor](export-journal.perms.md).
   + **Format output** - Format output dari data jurnal yang diekspor
     + **Teks ion** - (Default) Representasi teks Amazon Ion
     + **Biner ion** — Representasi biner dari Amazon Ion
     + **JSON - Format** teks JSON yang dibatasi Newline

       Jika Anda memilih JSON, QLDB menurunkan data jurnal Ion menjadi JSON di objek data yang diekspor. Untuk informasi selengkapnya, lihat [Down-convert ke JSON](export-journal.output.md#export-journal.output.json).

1. Ketika pengaturan seperti yang Anda inginkan, pilih **Buat pekerjaan ekspor**.

   Jumlah waktu yang dibutuhkan untuk menyelesaikan pekerjaan ekspor Anda bervariasi tergantung pada ukuran data. Jika pengiriman permintaan Anda berhasil, konsol akan kembali ke halaman **Ekspor** utama dan mencantumkan pekerjaan ekspor Anda dengan statusnya saat ini.

1. Anda dapat melihat objek ekspor Anda di konsol Amazon S3.

   Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

   Untuk mempelajari lebih lanjut tentang format objek keluaran ini, lihat[Output ekspor jurnal dalam QLDB](export-journal.output.md).

**catatan**  
Pekerjaan ekspor berakhir tujuh hari setelah selesai. Untuk informasi selengkapnya, lihat [Kedaluwarsa pekerjaan ekspor](#export-journal.request.expiration).

## QLDB API
<a name="export-journal.request.api"></a>

Anda juga dapat meminta ekspor jurnal dengan menggunakan Amazon QLDB API dengan SDK AWS atau file. AWS CLI QLDB API menyediakan operasi berikut untuk digunakan oleh program aplikasi:
+ `ExportJournalToS3`— Mengekspor konten jurnal dalam rentang tanggal dan waktu dari buku besar tertentu ke ember Amazon S3 tertentu. Pekerjaan ekspor dapat menulis data sebagai objek baik dalam teks atau representasi biner format Amazon Ion, atau dalam format teks JSON Lines.
+ `DescribeJournalS3Export`— Mengembalikan informasi rinci tentang pekerjaan ekspor jurnal. Outputnya mencakup statusnya saat ini, waktu pembuatan, dan parameter permintaan ekspor asli Anda.
+ `ListJournalS3Exports`— Mengembalikan daftar deskripsi pekerjaan ekspor jurnal untuk semua buku besar yang terkait dengan saat ini Akun AWS dan Wilayah. Output dari setiap deskripsi pekerjaan ekspor mencakup detail yang sama yang dikembalikan oleh`DescribeJournalS3Export`.
+ `ListJournalS3ExportsForLedger`— Mengembalikan daftar deskripsi pekerjaan ekspor jurnal untuk buku besar yang diberikan. Output dari setiap deskripsi pekerjaan ekspor mencakup detail yang sama yang dikembalikan oleh`DescribeJournalS3Export`.

Untuk deskripsi lengkap tentang operasi API ini, lihat. [Referensi API QLDB Amazon](api-reference.md)

Untuk informasi tentang mengekspor data jurnal menggunakan AWS CLI, lihat [Referensi AWS CLI Perintah](https://docs.aws.amazon.com/cli/latest/reference/qldb/index.html).

### Contoh aplikasi (Java)
<a name="export-journal.request.api.sample"></a>

Untuk contoh kode Java dari operasi ekspor dasar, lihat GitHub repositori [amazon-qldb-dmv-sampleaws-samples/](https://github.com/aws-samples/amazon-qldb-dmv-sample-java) -java. Untuk petunjuk tentang cara mengunduh dan menginstal aplikasi sampel ini, lihat[Menginstal aplikasi sampel Amazon QLDB Java](sample-app.java.md). Sebelum meminta ekspor, pastikan Anda mengikuti Langkah 1-3 [Tutorial Java](getting-started.java.tutorial.md) untuk membuat buku besar sampel dan memuatnya dengan data sampel.

Kode tutorial di kelas berikut memberikan contoh pembuatan ekspor, memeriksa status ekspor, dan memproses output ekspor.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/qldb/latest/developerguide/export-journal.request.html)

## Kedaluwarsa pekerjaan ekspor
<a name="export-journal.request.expiration"></a>

Pekerjaan ekspor jurnal yang diselesaikan tunduk pada periode retensi 7 hari. Mereka secara otomatis dihapus setelah batas ini kedaluwarsa. Periode kedaluwarsa ini adalah batas yang sulit dan tidak dapat diubah.

Setelah tugas ekspor selesai dihapus, Anda tidak dapat lagi menggunakan konsol QLDB atau operasi API berikut untuk mengambil metadata tentang pekerjaan:
+ `DescribeJournalS3Export`
+ `ListJournalS3Exports`
+ `ListJournalS3ExportsForLedger`

Namun, kedaluwarsa ini tidak berdampak pada data yang diekspor itu sendiri. Semua metadata disimpan dalam file manifes yang ditulis oleh ekspor Anda. Kedaluwarsa ini dirancang untuk memberikan pengalaman yang lebih lancar bagi operasi API yang mencantumkan pekerjaan ekspor jurnal. QLDB menghapus pekerjaan ekspor lama untuk memastikan bahwa Anda hanya melihat ekspor terbaru tanpa harus mengurai beberapa halaman pekerjaan.

# Output ekspor jurnal dalam QLDB
<a name="export-journal.output"></a>

**penting**  
Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat [Memigrasi Buku Besar QLDB Amazon ke Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

Pekerjaan ekspor jurnal QLDB Amazon menulis dua file manifes selain objek data yang berisi blok jurnal Anda. Ini semua disimpan di bucket Amazon S3 yang Anda berikan dalam permintaan [ekspor](export-journal.request.md) Anda. Bagian berikut menjelaskan format dan isi dari setiap objek output.

**catatan**  
Jika Anda menentukan JSON sebagai format output dari pekerjaan ekspor Anda, QLDB akan mengubah data jurnal Amazon Ion ke JSON di objek data yang diekspor. Untuk informasi lebih lanjut, lanjutkan ke[Down-convert ke JSON](#export-journal.output.json).

**Topics**
+ [File manifes](#export-journal.output.manifest)
+ [Obyek data](#export-journal.output.data)
+ [Down-convert ke JSON](#export-journal.output.json)
+ [Ekspor pustaka prosesor (Java)](#export-journal.output.processor)

## File manifes
<a name="export-journal.output.manifest"></a>

Amazon QLDB membuat dua file manifes dalam bucket S3 yang disediakan untuk setiap permintaan ekspor. File *manifes awal* dibuat segera setelah Anda mengirimkan permintaan ekspor. File *manifes akhir* ditulis setelah ekspor selesai. Anda dapat menggunakan file-file ini untuk memeriksa status pekerjaan ekspor Anda di Amazon S3.

Format untuk isi file manifes sesuai dengan format output yang diminta untuk ekspor.

### Manifes awal
<a name="export-journal.output.manifest.initial"></a>

Manifes awal menunjukkan bahwa pekerjaan ekspor Anda telah dimulai. Ini berisi parameter input yang Anda berikan ke permintaan. Selain tujuan Amazon S3 dan parameter waktu mulai dan berakhir untuk ekspor, file ini juga berisi file. `exportId` `exportId`Ini adalah ID unik yang diberikan QLDB untuk setiap pekerjaan ekspor.

Konvensi penamaan file adalah sebagai berikut.

```
s3://amzn-s3-demo-qldb-cloudtrail/prefix/exportId.started.manifest
```

Berikut ini adalah contoh file manifes awal dan isinya dalam format teks Ion.

```
s3://amzn-s3-demo-qldb-cloudtrail/journalExport/8UyXulxccYLAsbN1aon7e4.started.manifest
```

```
{
  ledgerName:"my-example-ledger",
  exportId:"8UyXulxccYLAsbN1aon7e4",
  inclusiveStartTime:2019-04-15T00:00:00.000Z,
  exclusiveEndTime:2019-04-15T22:00:00.000Z,
  bucket:"amzn-s3-demo-qldb-cloudtrail",
  prefix:"journalExport",
  objectEncryptionType:"NO_ENCRYPTION",
  outputFormat:"ION_TEXT"
}
```

Manifes awal mencakup `outputFormat` satu-satunya jika ditentukan dalam permintaan ekspor. Jika Anda tidak menentukan format output, data yang diekspor default ke format. `ION_TEXT`

Operasi [DescribeJournalS3Export](https://docs.aws.amazon.com/qldb/latest/developerguide/API_DescribeJournalS3Export.html) API dan jenis konten objek Amazon S3 yang diekspor juga menunjukkan format output.

### Manifes akhir
<a name="export-journal.output.manifest.final"></a>

Manifes terakhir menunjukkan bahwa pekerjaan ekspor Anda untuk *untaian* jurnal tertentu telah selesai. Pekerjaan ekspor menulis file manifes akhir terpisah untuk setiap untai.

**catatan**  
Di Amazon QLDB, untai adalah partisi jurnal buku besar Anda. QLDB saat ini mendukung jurnal dengan untai tunggal saja.

Manifes akhir mencakup daftar urutan kunci objek data yang ditulis selama ekspor. Konvensi penamaan file adalah sebagai berikut.

```
s3://amzn-s3-demo-qldb-cloudtrail/prefix/exportId.strandId.completed.manifest
```

`strandId`Ini adalah ID unik yang diberikan QLDB ke untai. Berikut ini adalah contoh file manifes akhir dan isinya dalam format teks Ion.

```
s3://amzn-s3-demo-qldb-cloudtrail/journalExport/8UyXulxccYLAsbN1aon7e4.JdxjkR9bSYB5jMHWcI464T.completed.manifest
```

```
{
  keys:[
    "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.1-4.ion",
    "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.5-10.ion",
    "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.11-12.ion",
    "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.13-20.ion",
    "2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.21-21.ion"
  ]
}
```

## Obyek data
<a name="export-journal.output.data"></a>

*Amazon QLDB menulis objek data jurnal dalam bucket Amazon S3 yang disediakan baik dalam representasi teks atau biner format Amazon Ion, atau dalam format teks JSON Lines.*

Dalam format JSON Lines, setiap blok dalam objek data yang diekspor adalah objek JSON yang valid yang dibatasi oleh baris baru. Anda dapat menggunakan format ini untuk mengintegrasikan ekspor JSON secara langsung dengan alat analitik seperti Amazon Athena AWS Glue dan karena layanan ini dapat mengurai JSON yang dibatasi baris baru secara otomatis. Untuk informasi selengkapnya tentang format, lihat [JSON Lines](https://jsonlines.org/).

### Nama objek data
<a name="export-journal.output.data.filename"></a>

Pekerjaan ekspor jurnal menulis objek data ini dengan konvensi penamaan berikut.

```
s3://amzn-s3-demo-qldb-cloudtrail/prefix/yyyy/mm/dd/hh/strandId.startSn-endSn.ion|.json
```
+ Data output dari setiap pekerjaan ekspor dipecah menjadi beberapa bagian.
+ `yyyy/mm/dd/hh`— Tanggal dan waktu ketika Anda mengajukan permintaan ekspor. Objek yang diekspor dalam jam yang sama dikelompokkan di bawah awalan Amazon S3 yang sama.
+ `strandId`— ID unik dari untai tertentu yang berisi blok jurnal yang sedang diekspor.
+ `startSn-endSn`— Rentang nomor urut yang termasuk dalam objek. Nomor urut menentukan lokasi blok dalam untai.

Misalnya, anggaplah Anda menentukan jalur berikut.

```
s3://amzn-s3-demo-qldb-cloudtrail/journalExport/
```

Pekerjaan ekspor Anda membuat objek data Amazon S3 yang terlihat mirip dengan yang berikut ini. Contoh ini menunjukkan nama objek dalam format Ion.

```
s3://amzn-s3-demo-qldb-cloudtrail/journalExport/2019/04/15/22/JdxjkR9bSYB5jMHWcI464T.1-5.ion
```

### Isi objek data
<a name="export-journal.output.data.contents"></a>

Setiap objek data berisi objek blok jurnal dengan format berikut.

```
{
  blockAddress: {
    strandId: String,
    sequenceNo: Int
  },
  transactionId: String,
  blockTimestamp: Datetime,
  blockHash: SHA256,
  entriesHash: SHA256,
  previousBlockHash: SHA256,
  entriesHashList: [ SHA256 ],
  transactionInfo: {
    statements: [
      {
        //PartiQL statement object
      }
    ],
    documents: {
      //document-table-statement mapping object
    }
  },
  revisions: [
    {
      //document revision object
    }
  ]
}
```

*Blok* adalah objek yang berkomitmen pada jurnal selama transaksi. [Sebuah blok berisi metadata transaksi bersama dengan entri yang mewakili revisi dokumen yang dilakukan dalam transaksi dan pernyataan PartiQL yang melakukannya.](ql-reference.md)

Berikut ini adalah contoh blok dengan data sampel dalam format teks Ion. Untuk informasi tentang bidang dalam objek blok, lihat[Isi jurnal di Amazon QLDB](journal-contents.md).

**catatan**  
Contoh blok ini disediakan hanya untuk tujuan informasi. Hash yang ditampilkan bukanlah nilai hash yang dihitung secara nyata.

```
{
  blockAddress:{
    strandId:"JdxjkR9bSYB5jMHWcI464T",
    sequenceNo:1234
  },
  transactionId:"D35qctdJRU1L1N2VhxbwSn",
  blockTimestamp:2019-10-25T17:20:21.009Z,
  blockHash:{{WYLOfZClk0lYWT3lUsSr0ONXh+Pw8MxxB+9zvTgSvlQ=}},
  entriesHash:{{xN9X96atkMvhvF3nEy6jMSVQzKjHJfz1H3bsNeg8GMA=}},
  previousBlockHash:{{IAfZ0h22ZjvcuHPSBCDy/6XNQTsqEmeY3GW0gBae8mg=}},
  entriesHashList:[
      {{F7rQIKCNn0vXVWPexilGfJn5+MCrtsSQqqVdlQxXpS4=}},
      {{C+L8gRhkzVcxt3qRJpw8w6hVEqA5A6ImGne+E7iHizo=}}
  ],
  transactionInfo:{
    statements:[
      {
        statement:"CREATE TABLE VehicleRegistration",
        startTime:2019-10-25T17:20:20.496Z,
        statementDigest:{{3jeSdejOgp6spJ8huZxDRUtp2fRXRqpOMtG43V0nXg8=}}
      },
      {
        statement:"CREATE INDEX ON VehicleRegistration (VIN)",
        startTime:2019-10-25T17:20:20.549Z,
        statementDigest:{{099D+5ZWDgA7r+aWeNUrWhc8ebBTXjgscq+mZ2dVibI=}}
      },
      {
        statement:"CREATE INDEX ON VehicleRegistration (LicensePlateNumber)",
        startTime:2019-10-25T17:20:20.560Z,
        statementDigest:{{B73tVJzVyVXicnH4n96NzU2L2JFY8e9Tjg895suWMew=}}
      },
      {
        statement:"INSERT INTO VehicleRegistration ?",
        startTime:2019-10-25T17:20:20.595Z,
        statementDigest:{{ggpon5qCXLo95K578YVhAD8ix0A0M5CcBx/W40Ey/Tk=}}
      }
    ],
    documents:{
      '8F0TPCmdNQ6JTRpiLj2TmW':{
        tableName:"VehicleRegistration",
        tableId:"BPxNiDQXCIB5l5F68KZoOz",
        statements:[3]
      }
    }
  },
  revisions:[
    {
      hash:{{FR1IWcWew0yw1TnRklo2YMF/qtwb7ohsu5FD8A4DSVg=}}
    },
    {
      blockAddress:{
        strandId:"JdxjkR9bSYB5jMHWcI464T",
        sequenceNo:1234
      },
      hash:{{t8Hj6/VC4SBitxnvBqJbOmrGytF2XAA/1c0AoSq2NQY=}},
      data:{
        VIN:"1N4AL11D75C109151",
        LicensePlateNumber:"LEWISR261LL",
        State:"WA",
        City:"Seattle",
        PendingPenaltyTicketAmount:90.25,
        ValidFromDate:2017-08-21,
        ValidToDate:2020-05-11,
        Owners:{
          PrimaryOwner:{
            PersonId:"GddsXfIYfDlKCEprOLOwYt"
          },
          SecondaryOwners:[]
        }
      },
      metadata:{
        id:"8F0TPCmdNQ6JTRpiLj2TmW",
        version:0,
        txTime:2019-10-25T17:20:20.618Z,
        txId:"D35qctdJRU1L1N2VhxbwSn"
      }
    }
  ]
}
```

Di `revisions` lapangan, beberapa objek revisi mungkin hanya berisi `hash` nilai dan tidak ada atribut lainnya. Ini adalah revisi sistem internal saja yang tidak berisi data pengguna. Pekerjaan ekspor mencakup revisi ini di blok masing-masing karena hash dari revisi ini adalah bagian dari rantai hash penuh jurnal. Rantai hash penuh diperlukan untuk verifikasi kriptografi.

## Down-convert ke JSON
<a name="export-journal.output.json"></a>

Jika Anda menentukan JSON sebagai format output dari pekerjaan ekspor Anda, QLDB akan mengubah data jurnal Amazon Ion ke JSON di objek data yang diekspor. Namun, mengonversi Ion ke JSON hilang dalam kasus tertentu di mana data Anda menggunakan tipe Ion kaya yang tidak ada di JSON.

*Untuk detail tentang aturan konversi Ion ke JSON, lihat [Mengonversi ke bawah ke JSON di Buku Masak](https://amzn.github.io/ion-docs/guides/cookbook.html#down-converting-to-json) Amazon Ion.*

## Ekspor pustaka prosesor (Java)
<a name="export-journal.output.processor"></a>

QLDB menyediakan kerangka kerja yang dapat diperluas untuk Java yang merampingkan pemrosesan ekspor di Amazon S3. Pustaka kerangka kerja ini menangani pekerjaan membaca output ekspor dan iterasi melalui blok yang diekspor dalam urutan berurutan. Untuk menggunakan prosesor ekspor ini, lihat GitHub repositori [amazon-qldb-export-processorawslabs/](https://github.com/awslabs/amazon-qldb-export-processor-java) -java.

# Izin ekspor jurnal di QLDB
<a name="export-journal.perms"></a>

**penting**  
Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat [Memigrasi Buku Besar QLDB Amazon ke Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

Sebelum mengirimkan permintaan ekspor jurnal di Amazon QLDB, Anda harus memberikan izin menulis kepada QLDB di bucket Amazon S3 yang Anda tentukan. Jika Anda memilih pelanggan yang dikelola AWS KMS key sebagai jenis enkripsi objek untuk bucket Amazon S3, Anda juga harus memberikan izin kepada QLDB untuk menggunakan kunci enkripsi simetris yang ditentukan. Amazon S3 tidak mendukung kunci KMS [asimetris](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html).

Untuk memberikan izin yang diperlukan kepada pekerjaan ekspor Anda, Anda dapat membuat QLDB mengambil peran layanan IAM dengan kebijakan izin yang sesuai. Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 

**catatan**  
Untuk meneruskan peran ke QLDB saat meminta ekspor jurnal, Anda harus memiliki izin untuk melakukan `iam:PassRole` tindakan pada sumber daya peran IAM. Ini selain `qldb:ExportJournalToS3` izin pada sumber daya buku besar QLDB.  
Untuk mempelajari cara mengontrol akses ke QLDB menggunakan IAM, lihat. [Bagaimana Amazon QLDB bekerja dengan IAM](security_iam_service-with-iam.md) Untuk contoh kebijakan QLDB, lihat. [Contoh kebijakan berbasis identitas untuk Amazon QLDB](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-export-to-s3-bucket)

Dalam contoh ini, Anda membuat peran yang memungkinkan QLDB menulis objek ke dalam bucket Amazon S3 atas nama Anda. Untuk informasi selengkapnya, lihat [Membuat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*.

Jika Anda mengekspor jurnal QLDB di jurnal Akun AWS Anda untuk pertama kalinya, Anda harus terlebih dahulu membuat peran IAM dengan kebijakan yang sesuai dengan melakukan hal berikut. Atau, Anda dapat [menggunakan konsol QLDB](export-journal.request.md#export-journal.request.con) untuk secara otomatis membuat peran untuk Anda. Jika tidak, Anda dapat memilih peran yang sebelumnya Anda buat.

**Topics**
+ [Membuat kebijakan izin](#export-journal.perms.create-policy)
+ [Membuat peran IAM](#export-journal.perms.create-role)

## Membuat kebijakan izin
<a name="export-journal.perms.create-policy"></a>

Selesaikan langkah-langkah berikut untuk membuat kebijakan izin untuk pekerjaan ekspor jurnal QLDB. Contoh ini menunjukkan kebijakan bucket Amazon S3 yang memberikan izin QLDB untuk menulis objek ke dalam bucket yang Anda tentukan. Jika berlaku, contoh ini juga menunjukkan kebijakan kunci yang memungkinkan QLDB menggunakan kunci KMS enkripsi simetris Anda.

Untuk informasi selengkapnya tentang kebijakan bucket Amazon S3, lihat [Menggunakan kebijakan bucket dan kebijakan pengguna](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-iam-policies.html) di Panduan *Pengguna Layanan Penyimpanan Sederhana Amazon*. Untuk mempelajari lebih lanjut tentang kebijakan AWS KMS utama, lihat [Menggunakan kebijakan utama AWS KMS di](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) *Panduan AWS Key Management Service Pengembang*.

**catatan**  
Bucket Amazon S3 dan kunci KMS Anda harus sama dengan buku besar QLDB Wilayah AWS Anda.

**Cara menggunakan editor kebijakan JSON untuk membuat kebijakan**

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

1. Di kolom navigasi di sebelah kiri, pilih **Kebijakan**.

   Jika ini pertama kalinya Anda memilih **Kebijakan**, akan muncul laman **Selamat Datang di Kebijakan Terkelola**. Pilih **Memulai**.

1. Di bagian atas halaman, pilih **Buat kebijakan**.

1. Pilih tab **JSON**.

1. Masukkan dokumen kebijakan JSON.
   + Jika Anda menggunakan kunci KMS yang dikelola pelanggan untuk enkripsi objek Amazon S3, gunakan contoh dokumen kebijakan berikut. Untuk menggunakan kebijakan ini, ganti*amzn-s3-demo-qldb-cloudtrail*, *us-east-1**123456789012*,, dan *1234abcd-12ab-34cd-56ef-1234567890ab* dalam contoh dengan informasi Anda sendiri.

     ```
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Sid": "QLDBJournalExportS3Permission",
                 "Action": [
                     "s3:PutObjectAcl",
                     "s3:PutObject"
                 ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:s3:::amzn-s3-demo-qldb-cloudtrail/*"
             },
             {
                 "Sid": "QLDBJournalExportKMSPermission",
                 "Action": [ "kms:GenerateDataKey" ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
             }
         ]
     }
     ```
   + Untuk jenis enkripsi lainnya, gunakan contoh dokumen kebijakan berikut. Untuk menggunakan kebijakan ini, ganti *amzn-s3-demo-qldb-cloudtrail* contoh dengan nama bucket Amazon S3 Anda sendiri.

     ```
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Sid": "QLDBJournalExportS3Permission",
                 "Action": [
                     "s3:PutObjectAcl",
                     "s3:PutObject"
                 ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:s3:::amzn-s3-demo-qldb-cloudtrail/*"
             }
         ]
     }
     ```

1. Pilih **Tinjau kebijakan**.
**catatan**  
Anda dapat berpindah antara tab **Editor visual** dan **JSON** kapan pun. Namun, apabila Anda melakukan perubahan atau memilih **Tinjau kebijakan** pada tab **Editor visual**, IAM dapat merestrukturisasi kebijakan Anda untuk menjadikannya optimal bagi editor visual. Untuk informasi selengkapnya, lihat [Restrukturisasi kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure) dalam *Panduan Pengguna IAM*.

1. Pada halaman **Peninjauan Kebijakan**, ketikkan **Nama** dan **Deskripsi** opsional untuk kebijakan yang sedang Anda buat. Tinjau **Summary** (Ringkasan) kebijakan untuk melihat izin yang diberikan oleh kebijakan Anda. Kemudian pilih **Buat kebijakan** untuk menyimpan pekerjaan Anda.

## Membuat peran IAM
<a name="export-journal.perms.create-role"></a>

Setelah membuat kebijakan izin untuk pekerjaan ekspor jurnal QLDB, Anda dapat membuat peran IAM dan melampirkan kebijakan Anda padanya.

**Untuk membuat peran layanan untuk QLDB (konsol IAM)**

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

1. Di panel navigasi konsol IAM, pilih **Peran**, dan lalu pilih **Buat peran**.

1. Untuk **jenis entitas Tepercaya**, pilih **Layanan AWS**.

1. Untuk **kasus Layanan atau penggunaan**, pilih **QLDB**, lalu pilih kasus penggunaan **QLDB**.

1. Pilih **Berikutnya**.

1. Pilih kotak di samping kebijakan yang Anda buat di langkah sebelumnya.

1. (Opsional) Tetapkan [batas izin](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Ini adalah fitur lanjutan yang tersedia untuk peran layanan, tetapi bukan peran tertaut layanan.

   1. Buka bagian **Setel batas izin**, lalu pilih **Gunakan batas izin untuk mengontrol izin peran maksimum**.

      IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda.

   1. Pilih kebijakan yang akan digunakan untuk batas izin.

1. Pilih **Berikutnya**.

1. Masukkan nama peran atau akhiran nama peran untuk membantu Anda mengidentifikasi tujuan peran.
**penting**  
Saat Anda memberi nama peran, perhatikan hal berikut:  
Nama peran harus unik di dalam diri Anda Akun AWS, dan tidak dapat dibuat unik berdasarkan kasus.  
Misalnya, jangan membuat peran bernama keduanya **PRODROLE** dan**prodrole**. Ketika nama peran digunakan dalam kebijakan atau sebagai bagian dari ARN, nama peran tersebut peka huruf besar/kecil, namun ketika nama peran muncul kepada pelanggan di konsol, seperti selama proses masuk, nama peran tersebut tidak peka huruf besar/kecil.
Anda tidak dapat mengedit nama peran setelah dibuat karena entitas lain mungkin mereferensikan peran tersebut.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran tersebut.

1. **(Opsional) Untuk mengedit kasus penggunaan dan izin untuk peran, di **Langkah 1: Pilih entitas tepercaya** atau **Langkah 2: Tambahkan izin**, pilih Edit.**

1. (Opsional) Untuk membantu mengidentifikasi, mengatur, atau mencari peran, tambahkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) di *Panduan Pengguna IAM*.

1. Tinjau peran lalu pilih **Buat peran**.

Dokumen JSON berikut adalah contoh kebijakan kepercayaan yang memungkinkan QLDB untuk mengambil peran IAM dengan izin khusus yang melekat padanya.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "qldb.amazonaws.com"
            },
            "Action": [ "sts:AssumeRole" ],
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

**catatan**  
Contoh kebijakan kepercayaan ini menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan global untuk mencegah masalah *wakil yang membingungkan*. Dengan kebijakan kepercayaan ini, QLDB dapat mengambil peran untuk sumber daya QLDB apa pun di akun saja. `123456789012`  
Untuk informasi selengkapnya, lihat [Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md).

Setelah membuat peran IAM Anda, kembali ke konsol QLDB dan segarkan halaman pekerjaan **Buat ekspor** sehingga dapat menemukan peran baru Anda.

# Kesalahan umum untuk ekspor jurnal
<a name="export-journal.errors"></a>

**penting**  
Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat [Memigrasi Buku Besar QLDB Amazon ke Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

Bagian ini menjelaskan kesalahan runtime yang dilemparkan oleh Amazon QLDB untuk permintaan ekspor jurnal.

Berikut ini adalah daftar pengecualian umum yang dikembalikan oleh layanan. Setiap pengecualian mencakup pesan kesalahan tertentu, diikuti dengan deskripsi singkat dan saran untuk solusi yang mungkin.<a name="export-journal.errors.varlist"></a>

**AccessDeniedException**  
Pesan: Pengguna: *userARN* tidak berwenang untuk melakukan: iam: PassRole pada sumber daya: *roleARN*  
Anda tidak memiliki izin untuk meneruskan peran IAM ke layanan QLDB. QLDB memerlukan peran untuk semua permintaan ekspor jurnal, dan Anda harus memiliki izin untuk meneruskan peran ini ke QLDB. Peran ini memberi QLDB izin menulis di bucket Amazon S3 yang Anda tentukan.  
Verifikasi bahwa Anda menentukan kebijakan IAM yang memberikan izin untuk menjalankan operasi `PassRole` API pada sumber daya peran IAM yang ditentukan untuk layanan QLDB (). `qldb.amazonaws.com` Untuk contoh kebijakan, lihat[Contoh kebijakan berbasis identitas untuk Amazon QLDB](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-export-to-s3-bucket).

**IllegalArgumentException**  
Pesan: QLDB mengalami kesalahan saat memvalidasi konfigurasi S3: *errorCode* *errorMessage*  
Kemungkinan penyebab kesalahan ini adalah bucket Amazon S3 yang disediakan tidak ada di Amazon S3. Atau, QLDB tidak memiliki izin yang cukup untuk menulis objek ke dalam bucket Amazon S3 yang Anda tentukan.  
Verifikasi bahwa nama bucket S3 yang Anda berikan dalam permintaan pekerjaan ekspor Anda sudah benar. Untuk informasi selengkapnya tentang penamaan [bucket, lihat Pembatasan dan batasan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) bucket di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.  
Selain itu, verifikasi bahwa Anda menentukan kebijakan untuk bucket yang ditentukan yang memberikan `PutObject` dan `PutObjectAcl` izin ke layanan QLDB (). `qldb.amazonaws.com` Untuk mempelajari selengkapnya, lihat [Izin ekspor](export-journal.perms.md).

**IllegalArgumentException**  
Pesan: Respons tak terduga dari Amazon S3 saat memvalidasi konfigurasi S3. Tanggapan dari S3: *errorCode* *errorMessage*  
Upaya untuk menulis data ekspor jurnal ke dalam bucket S3 yang disediakan gagal dengan respons kesalahan Amazon S3 yang disediakan. Untuk informasi selengkapnya tentang kemungkinan penyebab, lihat [Memecahkan Masalah Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshooting.html) di Panduan Pengguna Layanan *Penyimpanan Sederhana Amazon*.  


**IllegalArgumentException**  
Pesan: Awalan bucket Amazon S3 tidak boleh melebihi 128 karakter  
Awalan yang disediakan dalam permintaan ekspor jurnal berisi lebih dari 128 karakter.

**IllegalArgumentException**  
Pesan: Tanggal mulai tidak boleh lebih besar dari tanggal akhir  
Keduanya `InclusiveStartTime` dan `ExclusiveEndTime` harus dalam format tanggal dan waktu [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) dan dalam Coordinated Universal Time (UTC).

**IllegalArgumentException**  
Pesan: Tanggal akhir tidak bisa di masa depan  
Keduanya `InclusiveStartTime` dan `ExclusiveEndTime` harus dalam format `ISO 8601` tanggal dan waktu dan dalam UTC.

**IllegalArgumentException**  
Pesan: Pengaturan enkripsi objek yang disediakan (S3EncryptionConfiguration) tidak kompatibel dengan kunci AWS Key Management Service (AWS KMS)  
Anda menyediakan `KMSKeyArn` dengan `ObjectEncryptionType` salah satu `NO_ENCRYPTION` atau`SSE_S3`. Anda hanya dapat menyediakan pelanggan yang dikelola AWS KMS key untuk jenis enkripsi objek`SSE_KMS`. *Untuk mempelajari lebih lanjut tentang opsi enkripsi sisi server di Amazon S3, lihat [Melindungi data menggunakan enkripsi sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) di Panduan Pengembang Amazon S3.*

**LimitExceededException**  
Pesan: Melebihi batas 2 pekerjaan ekspor Jurnal yang berjalan secara bersamaan  
QLDB memberlakukan batas default dari dua pekerjaan ekspor jurnal bersamaan.