Meminta impor tabel di DynamoDB - Amazon DynamoDB

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

Meminta impor tabel di DynamoDB

Impor DynamoDB memungkinkan Anda mengimpor data dari bucket Amazon S3 ke tabel DynamoDB baru. Anda dapat meminta impor tabel menggunakan konsol DynamoDB, DynamoDB, CLICloudFormationatau DynamoDB. API

Jika Anda ingin menggunakan AWS CLI, Anda harus mengkonfigurasinya terlebih dahulu. Untuk informasi selengkapnya, lihat Mengakses DynamoDB.

catatan
  • Fitur Tabel Impor berinteraksi dengan beberapa AWS Layanan seperti Amazon S3 dan. CloudWatch Sebelum memulai impor, pastikan bahwa pengguna atau peran yang memanggil impor APIs memiliki izin untuk semua layanan dan sumber daya yang bergantung pada fitur tersebut.

  • Jangan memodifikasi objek Amazon S3 saat impor sedang berlangsung, karena ini dapat menyebabkan operasi gagal atau dibatalkan.

Untuk informasi selengkapnya tentang kesalahan dan pemecahan masalah, lihat Kuota format impor dan validasi

Menyiapkan IAM izin

Anda dapat mengimpor data dari bucket Amazon S3 mana pun yang izin bacanya Anda miliki. Bucket sumber tidak harus berada di Wilayah yang sama atau memiliki pemilik yang sama dengan tabel sumber. Klaster AWS Identity and Access Management (IAM) harus menyertakan tindakan yang relevan pada bucket Amazon S3 sumber, dan CloudWatch izin yang diperlukan untuk memberikan informasi debugging. Contoh kebijakan ditunjukkan di bawah ini.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDynamoDBImportAction", "Effect": "Allow", "Action": [ "dynamodb:ImportTable", "dynamodb:DescribeImport" ], "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/my-table*" }, { "Sid": "AllowS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-bucket/*", "arn:aws:s3:::your-bucket" ] }, { "Sid": "AllowCloudwatchAccess", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:/aws-dynamodb/*" }, { "Sid": "AllowDynamoDBListImports", "Effect": "Allow", "Action": "dynamodb:ListImports", "Resource": "*" } ] }

Izin Amazon S3

Saat memulai impor pada sumber bucket Amazon S3 yang dimiliki oleh akun lain, pastikan bahwa peran atau pengguna memiliki akses ke objek Amazon S3. Anda dapat memeriksanya dengan menjalankan perintah GetObject Amazon S3 dan menggunakan kredensial. Saat menggunakanAPI, parameter pemilik bucket Amazon S3 default ke ID akun pengguna saat ini. Untuk impor lintas akun, pastikan parameter ini diisi dengan benar dengan ID akun pemilik bucket. Kode berikut adalah contoh kebijakan bucket Amazon S3 di akun sumber.

{ "Version": "2012-10-17", "Statement": [ {"Sid": "ExampleStatement", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::awsexamplebucket1/*" } ] }

AWS Key Management Service

Saat membuat tabel baru untuk impor, jika Anda memilih enkripsi pada kunci istirahat yang tidak dimiliki oleh DynamoDB maka Anda harus memberikan AWS KMS izin yang diperlukan untuk mengoperasikan tabel DynamoDB yang dienkripsi dengan kunci yang dikelola pelanggan. Untuk informasi selengkapnya lihat Mengotorisasi penggunaan AWS KMS kunci. Jika objek Amazon S3 dienkripsi dengan enkripsi sisi server KMS (SSE-KMS), pastikan bahwa peran atau pengguna yang memulai impor memiliki akses untuk mendekripsi menggunakan AWS KMS kunci. Fitur ini tidak mendukung objek Amazon S3 terenkripsi kunci enkripsi (SSE-C) yang disediakan pelanggan.

CloudWatch izin

Peran atau pengguna yang memulai impor perlu membuat dan mengelola izin untuk grup log dan log stream yang terkait dengan impor.

Meminta impor menggunakan AWS Management Console

Contoh berikut menunjukkan cara menggunakan konsol DynamoDB untuk mengimpor data yang ada ke tabel baru bernama MusicCollection.

Untuk meminta impor tabel
  1. Masuk ke AWS Management Console dan buka konsol DynamoDB di. https://console.aws.amazon.com/dynamodb/

  2. Di panel navigasi di sisi kiri konsol, pilih Impor dari S3.

  3. Pada halaman yang muncul, pilih Impor dari S3.

  4. Pilih Impor dari S3.

  5. Di Sumber S3 URL, masukkan sumber Amazon URL S3.

    Jika Anda memiliki bucket sumber, pilih Browse S3 untuk mencarinya. Atau, masukkan bucket URL dalam format berikut —s3://bucket/prefix. prefixIni adalah awalan kunci Amazon S3. Ini adalah nama objek Amazon S3 yang ingin Anda impor atau awalan key yang dibagikan oleh semua objek Amazon S3 yang ingin Anda impor.

    catatan

    Anda tidak dapat menggunakan awalan yang sama dengan permintaan ekspor DynamoDB Anda. Fitur ekspor membuat struktur folder dan file manifes untuk semua ekspor. Jika Anda menggunakan jalur Amazon S3 yang sama, itu akan menghasilkan kesalahan.

    Sebagai gantinya, arahkan impor ke folder, yang berisi data dari ekspor tertentu. Format jalur yang benar dalam hal ini XXXXXXXX-XXXXXX adalahs3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/, di mana ID ekspor. Anda dapat menemukan ID ekspor di eksporARN, yang memiliki format berikut -arn:aws:dynamodb:<Region>:<AccountID>:table/<TableName>/export/<XXXXXXXX-XXXXXX>. Misalnya, arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4.

  6. Tentukan apakah Anda adalah pemilik bucket S3. Jika bucket sumber dimiliki oleh akun lain, pilih A different AWS akun. Lalu masukkan ID akun pemilik bucket.

  7. Di bawah Impor kompresi file, pilih Tidak ada kompresi, GZIPatau yang ZSTDsesuai.

  8. Pilih format file Impor yang sesuai. Pilihannya adalah JSONDynamoDB, Amazon Ion atau. CSV Jika Anda memilih CSV, Anda akan memiliki dua opsi tambahan: karakter CSVheader dan CSVpembatas.

    Untuk CSVheader, pilih apakah header akan diambil dari baris pertama file atau disesuaikan. Jika Anda memilih Sesuaikan header Anda, Anda dapat menentukan nilai header yang ingin Anda gunakan untuk mengimpor. CSVHeader yang ditentukan oleh metode ini peka huruf besar/kecil dan diharapkan berisi kunci dari tabel target.

    Untuk karakter CSV pembatas, Anda mengatur karakter yang akan memisahkan item. Koma dipilih secara default. Jika Anda memilih Karakter pembatas khusus, pembatas harus sesuai dengan pola ekspresi reguler: [,;:|\t ].

  9. Pilih tombol Berikutnya dan pilih opsi untuk tabel baru yang akan dibuat untuk menyimpan data Anda.

    catatan

    Kunci Primer dan Kunci Urutan harus cocok dengan atribut dalam file, atau impor akan gagal. Atributnya peka huruf besar-kecil.

  10. Pilih Berikutnya lagi untuk meninjau opsi impor Anda, lalu klik Impor untuk memulai tugas impor. Pertama-tama Anda akan melihat tabel baru Anda tercantum di “Tabel” dengan status “Membuat”. Saat ini tabel tersebut tidak dapat diakses.

  11. Setelah impor selesai, statusnya akan ditampilkan sebagai "Aktif" dan Anda dapat mulai menggunakan tabel tersebut.

Mendapatkan detail tentang impor sebelumnya di AWS Management Console

Anda dapat menemukan informasi tentang tugas impor yang pernah Anda jalankan sebelumnya dengan mengklik Impor dari S3 di bar samping navigasi, lalu memilih tab Impor. Panel impor berisi daftar semua impor yang Anda buat dalam 90 hari terakhir. Memilih tugas ARN yang tercantum di tab Impor akan mengambil informasi tentang impor tersebut, termasuk pengaturan konfigurasi lanjutan yang Anda pilih.

Meminta impor menggunakan AWS CLI

Contoh berikut mengimpor data CSV yang diformat dari bucket S3 yang disebut bucket dengan awalan awalan ke tabel baru yang disebut target-table.

aws dynamodb import-table --s3-bucket-source S3Bucket=bucket,S3KeyPrefix=prefix \ --input-format CSV --table-creation-parameters '{"TableName":"target-table","KeySchema": \ [{"AttributeName":"hk","KeyType":"HASH"}],"AttributeDefinitions":[{"AttributeName":"hk","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST"}' \ --input-format-options '{"Csv": {"HeaderList": ["hk", "title", "artist", "year_of_release"], "Delimiter": ";"}}'
catatan

Jika Anda memilih untuk mengenkripsi impor Anda menggunakan kunci yang dilindungi oleh AWS Key Management Service (AWS KMS), kuncinya harus berada di Wilayah yang sama dengan bucket Amazon S3 tujuan.

Mendapatkan detail tentang impor sebelumnya di AWS CLI

Anda dapat menemukan informasi tentang tugas impor yang pernah Anda jalankan sebelumnya dengan menggunakan perintah list-imports. Perintah ini mengembalikan daftar semua impor yang Anda buat dalam 90 hari terakhir. Perhatikan bahwa meskipun metadata tugas impor akan kedaluwarsa setelah 90 hari dan tugas yang lebih lama dari itu tidak lagi ditemukan dalam daftar ini, DynamoDB tidak menghapus objek apa pun di bucket Amazon S3 Anda atau tabel yang dibuat selama impor.

aws dynamodb list-imports

Untuk mengambil informasi mendetail tentang tugas impor tertentu, termasuk pengaturan konfigurasi lanjutan, gunakan perintah describe-import.

aws dynamodb describe-import \ --import-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/exp