Mengekspor data dari klaster DB Aurora PostgreSQL ke Amazon S3 - Amazon Aurora

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

Mengekspor data dari klaster DB Aurora PostgreSQL ke Amazon S3

Anda dapat mengueri data dari klaster DB Aurora PostgreSQL dan mengekspornya langsung ke file yang disimpan dalam bucket Amazon S3. Untuk melakukannya, instal ekstensi Aurora PostgreSQL aws_s3 terlebih dahulu. Ekstensi ini memberi Anda fungsi yang Anda gunakan untuk mengekspor hasil kueri ke Amazon S3. Berikut ini, Anda dapat mengetahui cara menginstal ekstensi dan cara mengekspor data ke Amazon S3.

Anda dapat mengekspor dari instans DB Aurora Serverless v2 atau yang tersedia. Langkah-langkah ini tidak didukung untuk Aurora Serverless v1.

catatan

Ekspor lintas akun ke Amazon S3 tidak didukung.

Semua versi Aurora PostgreSQL yang tersedia saat ini mendukung ekspor data ke Amazon Simple Storage Service. Untuk informasi versi terperinci, lihat Pembaruan Amazon Aurora PostgreSQL dalam Catatan Rilis untuk Aurora PostgreSQL.

Jika Anda belum menyiapkan bucket untuk ekspor, lihat topik berikut, Panduan Pengguna Amazon Simple Storage Service.

Secara default, data yang diekspor dari Aurora PostgreSQL ke Amazon S3 menggunakan enkripsi sisi server dengan. Kunci yang dikelola AWS Anda dapat menggunakan kunci terkelola pelanggan yang telah Anda buat. Jika Anda menggunakan enkripsi bucket, bucket Amazon S3 harus dienkripsi dengan AWS Key Management Service (AWS KMS) key (SSE-KMS). Saat ini, bucket yang dienkripsi dengan kunci terkelola Amazon S3 (SSE-S3) tidak didukung.

catatan

Anda dapat menyimpan data snapshot cluster DB dan DB ke Amazon S3 menggunakan AWS Management Console AWS CLI,, atau Amazon RDS API. Untuk informasi selengkapnya, lihat Mengekspor data snapshot klaster DB ke Amazon S3.

Menginstal ekstensi aws_s3

Sebelum Anda dapat menggunakan Amazon Simple Storage Service dengan klaster DB Aurora PostgreSQL, Anda perlu menginstal ekstensi aws_s3. Ekstensi ini memberikan fungsi untuk mengekspor data dari instans penulis klaster DB Aurora PostgreSQL ke bucket Amazon S3. Ini juga menyediakan fungsi untuk mengimpor data dari Amazon S3. Untuk informasi selengkapnya, lihat Mengimpor data dari Amazon S3 ke klaster DB Aurora PostgreSQL. Ekstensi aws_s3 bergantung pada beberapa fungsi pembantu dalam ekstensi aws_commons, yang diinstal secara otomatis bila diperlukan.

Untuk menginstal ekstensi aws_s3
  1. Gunakan psql (atau pgAdmin) untuk terhubung ke instans penulis klaster DB Aurora PostgreSQL sebagai pengguna yang memiliki hak istimewa rds_superuser. Jika Anda menyimpan nama default selama proses penyiapan, Anda terhubung sebagai postgres.

    psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. Untuk menginstal ekstensi, jalankan perintah berikut.

    postgres=> CREATE EXTENSION aws_s3 CASCADE; NOTICE: installing required extension "aws_commons" CREATE EXTENSION
  3. Untuk memverifikasi bahwa ekstensi sudah diinstal, Anda dapat menggunakan metacommand psql \dx.

    postgres=> \dx List of installed extensions Name | Version | Schema | Description -------------+---------+------------+--------------------------------------------- aws_commons | 1.2 | public | Common data types across AWS services aws_s3 | 1.1 | public | AWS S3 extension for importing data from S3 plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (3 rows)

Fungsi untuk mengimpor data dari Amazon S3 dan mengekspor data ke Amazon S3 kini dapat digunakan.

Verifikasi bahwa versi Aurora PostgreSQL Anda mendukung ekspor ke Amazon S3

Anda dapat memverifikasi bahwa versi RDS for PostgreSQL Anda mendukung ekspor ke Amazon S3 dengan menggunakan perintah describe-db-engine-versions. Contoh berikut memeriksa untuk melihat apakah versi 10.14 dapat mengekspor ke Amazon S3.

aws rds describe-db-engine-versions --region us-east-1 \ --engine aurora-postgresql --engine-version 10.14 | grep s3Export

Jika output-nya menyertakan string "s3Export", berarti mesinnya mendukung ekspor Amazon S3. Jika tidak, mesin tidak mendukungnya.

Ikhtisar ekspor data ke Amazon S3

Untuk mengekspor data yang disimpan dalam basis data Aurora PostgreSQL ke bucket Amazon S3, gunakan prosedur berikut.

Untuk mengekspor data Aurora PostgreSQL ke S3
  1. Identifikasi jalur file Amazon S3 yang akan digunakan untuk mengekspor data. Untuk detail tentang proses ini, lihat Menentukan jalur file Amazon S3 tujuan ekspor.

  2. Berikan izin untuk mengakses bucket Amazon S3.

    Untuk mengekspor data ke file Amazon S3, beri klaster DB Aurora PostgreSQL izin untuk mengakses bucket Amazon S3 yang akan digunakan untuk penyimpanan data yang diekspor. Berikut adalah langkah-langkahnya:

    1. Buat kebijakan IAM yang memberikan akses ke bucket Amazon S3 tempat tujuan ekspor.

    2. Buat peran IAM.

    3. Lampirkan kebijakan yang Anda buat ke peran yang Anda buat.

    4. Tambahkan peran IAM ini ke klaster DB .

    Untuk detail tentang proses ini, lihat Menyiapkan akses ke bucket Amazon S3.

  3. Identifikasi kueri basis data untuk mendapatkan data. Ekspor data kueri dengan memanggil fungsi aws_s3.query_export_to_s3.

    Setelah menyelesaikan tugas persiapan sebelumnya, gunakan fungsi aws_s3.query_export_to_s3 untuk mengekspor hasil kueri ke Amazon S3. Untuk detail tentang proses ini, lihat Mengekspor data kueri menggunakan fungsi aws_s3.query_export_to_s3.

Menentukan jalur file Amazon S3 tujuan ekspor

Tentukan informasi berikut untuk mengidentifikasi lokasi di Amazon S3 tempat Anda ingin mengekspor data:

  • Nama bucket – Bucket adalah kontainer untuk objek atau file Amazon S3.

    Untuk informasi selengkapnya tentang menyimpan data dengan Amazon S3, lihat Membuat bucket dan Melihat objek dalam Panduan Pengguna Amazon Simple Storage Service.

  • Jalur file – Jalur file mengidentifikasi tempat penyimpanan data yang diekspor dalam bucket Amazon S3. Jalur file terdiri atas:

    • Awalan jalur opsional yang mengidentifikasi jalur folder virtual.

    • Awalan file yang mengidentifikasi satu atau beberapa file yang akan disimpan. Ekspor yang lebih besar disimpan dalam beberapa file, masing-masing berukuran maksimum sekitar 6 GB. Nama file tambahan memiliki awalan file yang sama, tetapi dengan penambahan _partXX. XX mewakili 2, lalu 3, dan seterusnya.

    Misalnya, jalur file dengan folder exports dan awalan file query-1-export adalah /exports/query-1-export.

  • AWS Wilayah (opsional) - AWS Wilayah tempat bucket Amazon S3 berada.

    catatan

    Saat ini, AWS Wilayah harus sama dengan wilayah DB cluster DB yang mengekspor.

    Untuk daftar nama AWS Wilayah dan nilai terkait, lihatWilayah dan Zona Ketersediaan.

Untuk menyimpan informasi file Amazon S3 tentang lokasi penyimpanan file yang diekspor, Anda dapat menggunakan fungsi aws_commons.create_s3_uri untuk membuat struktur komposit aws_commons._s3_uri_1 sebagai berikut.

psql=> SELECT aws_commons.create_s3_uri( 'DOC-EXAMPLE-BUCKET', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset

Kemudian, berikan nilai s3_uri_1 ini sebagai parameter untuk memanggil fungsi aws_s3.query_export_to_s3. Sebagai contoh, lihat Mengekspor data kueri menggunakan fungsi aws_s3.query_export_to_s3.

Menyiapkan akses ke bucket Amazon S3

Untuk mengekspor data ke Amazon S3, berikan izin kepada klaster DB PostgreSQL Anda untuk mengakses bucket Amazon S3 yang akan dimasuki file.

Untuk melakukannya, gunakan prosedur berikut.

Untuk memberi klaster DB PostgreSQL akses ke Amazon S3 melalui peran IAM
  1. Buat kebijakan IAM.

    Kebijakan ini memberikan izin kepada bucket dan objek yang memungkinkan klaster DB PostgreSQL Anda mengakses Amazon S3.

    Sebagai bagian dari pembuatan kebijakan ini, lakukan langkah-langkah berikut:

    1. Sertakan tindakan yang diperlukan berikut dalam kebijakan untuk mengizinkan transfer file dari klaster DB PostgreSQL ke bucket Amazon S3:

      • s3:PutObject

      • s3:AbortMultipartUpload

    2. Sertakan Amazon Resource Name (ARN) yang mengidentifikasi bucket dan objek Amazon S3 dalam bucket. Format ARN untuk mengakses Amazon S3 adalah: arn:aws:s3:::DOC-EXAMPLE-BUCKET/*

    Untuk informasi selengkapnya tentang cara membuat kebijakan IAM untuk Aurora PostgreSQL, lihat Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM. Lihat juga Tutorial: Membuat dan melampirkan kebijakan yang dikelola pelanggan pertama Anda di Panduan Pengguna IAM.

    AWS CLI Perintah berikut membuat kebijakan IAM bernama rds-s3-export-policy dengan opsi ini. Ini memberikan akses ke bucket bernama DOC-EXAMPLE-BUCKET.

    Awas

    Sebaiknya Anda menyiapkan basis data Anda dengan VPC privat yang memiliki kebijakan titik akhir yang dikonfigurasi untuk mengakses bucket tertentu. Untuk informasi selengkapnya, lihat Menggunakan kebijakan titik akhir untuk Amazon S3 di Panduan Pengguna Amazon VPC.

    Kami sangat menyarankan Anda agar tidak membuat kebijakan dengan akses semua sumber daya. Akses ini dapat menjadi ancaman bagi data keamanan. Jika Anda membuat kebijakan yang memberi akses S3:PutObject ke semua sumber daya menggunakan "Resource":"*", pengguna yang memiliki hak istimewa ekspor dapat mengekspor data ke semua bucket di akun Anda. Selain itu, pengguna dapat mengekspor data ke bucket yang dapat ditulis secara publik Wilayah AWS Anda.

    Setelah Anda membuat kebijakan, catat Amazon Resource Name (ARN) dari kebijakan tersebut. Anda memerlukan ARN ini untuk langkah berikutnya ketika Anda melampirkan kebijakan ke peran IAM.

    aws iam create-policy --policy-name rds-s3-export-policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3export", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }'
  2. Buat peran IAM.

    Lakukan langkah ini agar Aurora PostgreSQL dapat mengambil peran IAM ini atas nama Anda untuk mengakses bucket Amazon S3. Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin ke pengguna IAM dalam Panduan Pengguna IAM.

    Sebaiknya gunakan kunci konteks kondisi global aws:SourceArn dan aws:SourceAccount dalam kebijakan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara paling efektif untuk melindungi dari masalah deputi yang membingungkan.

    Jika Anda menggunakan kunci konteks kondisi global dan nilai aws:SourceArn berisi ID akun, nilai aws:SourceAccount dan akun dalam nilai aws:SourceArn harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

    • Gunakan aws:SourceArn jika Anda menginginkan akses lintas layanan untuk satu sumber daya.

    • Gunakan aws:SourceAccount jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

    Dalam kebijakan, pastikan untuk menggunakan kunci konteks kondisi global aws:SourceArn dengan ARN penuh sumber daya. Contoh berikut menunjukkan bagaimana melakukannya dengan menggunakan AWS CLI perintah untuk membuat peran bernamards-s3-export-role.

    contoh

    Untuk Linux, macOS, atau Unix:

    aws iam create-role \ --role-name rds-s3-export-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname" } } } ] }'

    Untuk Windows:

    aws iam create-role ^ --role-name rds-s3-export-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:db:dbname" } } } ] }'
  3. Lampirkan kebijakan IAM yang Anda buat ke peran IAM yang Anda buat.

    AWS CLI Perintah berikut melampirkan kebijakan yang dibuat sebelumnya ke peran bernama rds-s3-export-role. Ganti your-policy-arn dengan ARN kebijakan yang Anda catat di langkah sebelumnya.

    aws iam attach-role-policy --policy-arn your-policy-arn --role-name rds-s3-export-role
  4. Tambahkan peran IAM ke klaster DB. Anda melakukannya dengan menggunakan AWS Management Console atau AWS CLI, seperti yang dijelaskan berikut.

Untuk menambahkan peran IAM untuk klaster DB PostgreSQL menggunakan konsol
  1. Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.

  2. Pilih nama klaster DB PostgreSQL untuk menampilkan detailnya.

  3. Di tab Konektivitas & keamanan, di bagian Kelola peran IAM, pilih peran yang akan ditambahkan pada bagian Tambahkan peran IAM ke instans ini.

  4. Di bagian Fitur, pilih s3Export.

  5. Pilih Tambahkan peran.

Untuk menambahkan peran IAM untuk klaster DB PostgreSQL menggunakan CLI
  • Gunakan perintah berikut untuk menambahkan peran ke klaster DB PostgreSQL bernama my-db-cluster. Ganti your-role-arn dengan ARN peran yang Anda catat pada langkah sebelumnya. Gunakan s3Export untuk nilai opsi --feature-name.

    contoh

    Untuk Linux, macOS, atau Unix:

    aws rds add-role-to-db-cluster \ --db-cluster-identifier my-db-cluster \ --feature-name s3Export \ --role-arn your-role-arn \ --region your-region

    Untuk Windows:

    aws rds add-role-to-db-cluster ^ --db-cluster-identifier my-db-cluster ^ --feature-name s3Export ^ --role-arn your-role-arn ^ --region your-region

Mengekspor data kueri menggunakan fungsi aws_s3.query_export_to_s3

Ekspor data PostgreSQL Anda ke Amazon S3 dengan memanggil fungsi aws_s3.query_export_to_s3.

Prasyarat

Sebelum menggunakan fungsi aws_s3.query_export_to_s3, pastikan untuk melengkapi prasyarat berikut:

Contoh berikut menggunakan tabel basis data yang disebut sample_table. Contoh-contoh ini mengekspor data ke dalam bucket yang disebut DOC-EXAMPLE-BUCKET. Contoh tabel dan data dibuat dengan pernyataan SQL berikut di psql.

psql=> CREATE TABLE sample_table (bid bigint PRIMARY KEY, name varchar(80)); psql=> INSERT INTO sample_table (bid,name) VALUES (1, 'Monday'), (2,'Tuesday'), (3, 'Wednesday');

Memanggil aws_s3.query_export_to_s3

Berikut ini adalah cara-cara dasar untuk memanggil fungsi aws_s3.query_export_to_s3.

Contoh ini menggunakan variabel s3_uri_1 untuk mengidentifikasi struktur berisi informasi yang mengidentifikasi file Amazon S3. Gunakan fungsi aws_commons.create_s3_uri untuk membuat struktur.

psql=> SELECT aws_commons.create_s3_uri( 'DOC-EXAMPLE-BUCKET', 'sample-filepath', 'us-west-2' ) AS s3_uri_1 \gset

Meskipun parameter bervariasi untuk dua panggilan fungsi aws_s3.query_export_to_s3 berikut, hasilnya sama untuk contoh ini. Semua baris sample_table tabel diekspor ke dalam ember yang disebut DOC-EXAMPLE-BUCKET.

psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1'); psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1', options :='format text');

Parameternya dijelaskan sebagai berikut:

  • 'SELECT * FROM sample_table' – Parameter pertama adalah string teks wajib yang berisi kueri SQL. Mesin PostgreSQL menjalankan kueri ini. Hasil kueri disalin ke bucket S3 yang diidentifikasi dalam parameter lain.

  • :'s3_uri_1' – Parameter ini adalah struktur yang mengidentifikasi file Amazon S3. Contoh ini menggunakan variabel untuk mengidentifikasi struktur yang dibuat sebelumnya. Anda dapat membuat struktur dengan menyertakan baris panggilan fungsi aws_commons.create_s3_uri sebaris dalam panggilan fungsi aws_s3.query_export_to_s3 sebagai berikut.

    SELECT * from aws_s3.query_export_to_s3('select * from sample_table', aws_commons.create_s3_uri('DOC-EXAMPLE-BUCKET', 'sample-filepath', 'us-west-2') );
  • options :='format text' – Parameter options adalah string teks opsional yang berisi argumen COPY PostgreSQL. Proses penyalinan menggunakan argumen dan format perintah PostgreSQL COPY.

Jika file yang ditentukan tidak ada dalam bucket Amazon S3, file tersebut akan dibuat. Jika file sudah ada, file tersebut akan ditimpa. Sintaks untuk mengakses data yang diekspor di Amazon S3 adalah sebagai berikut.

s3-region://bucket-name[/path-prefix]/file-prefix

Ekspor yang lebih besar disimpan dalam beberapa file, masing-masing berukuran maksimum sekitar 6 GB. Nama file tambahan memiliki awalan file yang sama, tetapi dengan penambahan _partXX. XX mewakili 2, lalu 3, dan seterusnya. Sebagai contoh, misalkan Anda menentukan jalur tempat Anda menyimpan file data sebagai berikut.

s3-us-west-2://DOC-EXAMPLE-BUCKET/my-prefix

Jika ekspor harus membuat tiga file data, bucket Amazon S3 berisi file data berikut.

s3-us-west-2://DOC-EXAMPLE-BUCKET/my-prefix s3-us-west-2://DOC-EXAMPLE-BUCKET/my-prefix_part2 s3-us-west-2://DOC-EXAMPLE-BUCKET/my-prefix_part3

Untuk referensi selengkapnya tentang fungsi ini dan cara lain untuk memanggilnya, lihat aws_s3.query_export_to_s3. Untuk informasi selengkapnya tentang cara mengakses file di Amazon S3, buka Melihat objek dalam Panduan Pengguna Amazon Simple Storage Service.

Mengekspor ke file CSV yang menggunakan pembatas kustom

Contoh berikut menunjukkan cara memanggil fungsi aws_s3.query_export_to_s3 untuk mengekspor data ke file yang menggunakan pembatas kustom. Contoh ini menggunakan argumen perintah PostgreSQL COPY untuk menetapkan format nilai yang dipisahkan koma (CSV) dan pembatas titik dua (:).

SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format csv, delimiter $$:$$');

Mengekspor ke file biner dengan pengodean

Contoh berikut menunjukkan cara memanggil fungsi aws_s3.query_export_to_s3 untuk mengekspor data ke file biner yang memiliki pengodean Windows-1253.

SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format binary, encoding WIN1253');

Memecahkan masalah akses ke Amazon S3

Jika Anda mengalami masalah koneksi saat mencoba mengekspor data ke Amazon S3, pertama pastikan aturan akses keluar untuk grup keamanan VPC yang terkait dengan instans DB Anda mengizinkan konektivitas jaringan. Khususnya, grup keamanan harus memiliki aturan yang mengizinkan instans DB mengirim lalu lintas TCP ke port 443 dan ke alamat IPv4 mana pun (0.0.0.0/0). Untuk informasi selengkapnya, lihat Berikan akses ke klaster DB dalam VPC dengan membuat grup keamanan.

Lihat juga rekomendasi berikut:

Referensi fungsi

aws_s3.query_export_to_s3

Mengekspor hasil kueri PostgreSQL ke bucket Amazon S3. Ekstensi aws_s3 memberikan fungsi aws_s3.query_export_to_s3.

Dua parameter yang dibutuhkan adalah query dan s3_info. Parameter ini menentukan kueri yang akan diekspor dan mengidentifikasi bucket Amazon S3 tempat tujuan ekspor. Parameter opsional yang disebut options disediakan untuk menentukan berbagai parameter ekspor. Sebagai contoh penggunaan fungsi aws_s3.query_export_to_s3, lihat Mengekspor data kueri menggunakan fungsi aws_s3.query_export_to_s3.

Sintaksis

aws_s3.query_export_to_s3( query text, s3_info aws_commons._s3_uri_1, options text, kms_key text )
Parameter input
query

String teks yang diperlukan yang berisi kueri SQL yang dijalankan mesin PostgreSQL. Hasil kueri ini disalin ke bucket S3 yang diidentifikasi dalam parameter s3_info.

s3_info

Jenis komposit aws_commons._s3_uri_1 yang berisi informasi tentang objek S3 berikut:

  • bucket – Nama bucket Amazon S3 yang akan diisi file.

  • file_path – Nama dan jalur file Amazon S3.

  • region— AWS Wilayah tempat ember berada. Untuk daftar nama AWS Wilayah dan nilai terkait, lihatWilayah dan Zona Ketersediaan.

    Saat ini, nilai ini harus AWS Wilayah yang sama dengan DB cluster DB yang mengekspor. Defaultnya adalah AWS Region dari DB cluster DB yang mengekspor.

Untuk membuat struktur komposit aws_commons._s3_uri_1, lihat fungsi aws_commons.create_s3_uri.

options

String teks opsional yang berisi argumen untuk perintah COPY PostgreSQL. Argumen ini menentukan cara menyalin data saat diekspor. Untuk detail selengkapnya, lihat Dokumentasi PostgreSQL COPY.

teks kms_key

String teks opsional yang berisi kunci KMS yang dikelola pelanggan dari bucket S3 untuk mengekspor data.

Parameter input alternatif

Untuk memudahkan pengujian, Anda dapat menggunakan serangkaian parameter yang diperluas, bukan parameter s3_info. Berikut ini adalah variasi sintaks tambahan untuk fungsi aws_s3.query_export_to_s3.

Alih-alih menggunakan parameter s3_info untuk mengidentifikasi file Amazon S3, gunakan kombinasi parameter bucket, file_path, dan region.

aws_s3.query_export_to_s3( query text, bucket text, file_path text, region text, options text, kms_key text )
query

String teks yang diperlukan yang berisi kueri SQL yang dijalankan mesin PostgreSQL. Hasil kueri ini disalin ke bucket S3 yang diidentifikasi dalam parameter s3_info.

bucket

String teks yang diperlukan yang berisi nama bucket Amazon S3 yang berisi file.

file_path

String teks yang diperlukan yang berisi nama file Amazon S3 beserta jalurnya.

region

String teks opsional yang berisi AWS Wilayah tempat bucket berada. Untuk daftar nama AWS Wilayah dan nilai terkait, lihatWilayah dan Zona Ketersediaan.

Saat ini, nilai ini harus AWS Wilayah yang sama dengan DB cluster DB yang mengekspor. Defaultnya adalah AWS Region dari DB cluster DB yang mengekspor.

options

String teks opsional yang berisi argumen untuk perintah COPY PostgreSQL. Argumen ini menentukan cara menyalin data saat diekspor. Untuk detail selengkapnya, lihat Dokumentasi PostgreSQL COPY.

teks kms_key

String teks opsional yang berisi kunci KMS yang dikelola pelanggan dari bucket S3 untuk mengekspor data.

Parameter output

aws_s3.query_export_to_s3( OUT rows_uploaded bigint, OUT files_uploaded bigint, OUT bytes_uploaded bigint )
rows_uploaded

Jumlah baris tabel yang berhasil diunggah ke Amazon S3 untuk kueri tertentu.

files_uploaded

Jumlah file yang diunggah ke Amazon S3. File dibuat dalam ukuran kira-kira 6 GB. Setiap file tambahan yang dibuat memiliki _partXX yang ditambahkan pada namanya. XX mewakili 2, kemudian 3, dan seterusnya sesuai kebutuhan.

bytes_uploaded

Jumlah total byte yang diunggah ke Amazon S3.

Contoh

psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'DOC-EXAMPLE-BUCKET', 'sample-filepath'); psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'DOC-EXAMPLE-BUCKET', 'sample-filepath','us-west-2'); psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'DOC-EXAMPLE-BUCKET', 'sample-filepath','us-west-2','format text');

aws_commons.create_s3_uri

Membuat struktur aws_commons._s3_uri_1 untuk menyimpan informasi file Amazon S3. Gunakan hasil dari fungsi aws_commons.create_s3_uri dalam parameter s3_info dari fungsi aws_s3.query_export_to_s3. Untuk contoh penggunaan fungsi aws_commons.create_s3_uri, lihat Menentukan jalur file Amazon S3 tujuan ekspor.

Sintaksis

aws_commons.create_s3_uri( bucket text, file_path text, region text )
Parameter input
bucket

String teks yang diperlukan yang berisi nama bucket Amazon S3 untuk file tersebut.

file_path

String teks yang diperlukan yang berisi nama file Amazon S3 beserta jalurnya.

region

String teks yang diperlukan yang berisi AWS Wilayah tempat file tersebut berada. Untuk daftar nama AWS Wilayah dan nilai terkait, lihatWilayah dan Zona Ketersediaan.