View a markdown version of this page

Menggunakan API Data Amazon Redshift - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

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

Menggunakan API Data Amazon Redshift

Amazon Redshift Data API menyederhanakan akses ke gudang data Amazon Redshift Anda dengan menghilangkan kebutuhan untuk mengelola driver database, koneksi, konfigurasi jaringan, buffering data, kredenSIAL, dan banyak lagi. Anda dapat menjalankan pernyataan SQL menggunakan operasi API Data dengan AWS SDK. Untuk informasi selengkapnya tentang operasi API Data, lihat Referensi API Data Amazon Redshift.

API Data tidak memerlukan koneksi persisten ke database Anda. Sebaliknya, ia menyediakan titik akhir HTTP yang aman dan integrasi dengan AWS SDK. Anda dapat menggunakan titik akhir untuk menjalankan pernyataan SQL tanpa mengelola koneksi. Panggilan ke API Data tidak sinkron. Data API dapat menggunakan salah satu kredensional yang disimpan di AWS Secrets Manager atau kredenSIAL database sementara. Anda tidak perlu meneruskan kata sandi dalam panggilan API dengan salah satu metode otorisasi. Untuk informasi lebih lanjut tentang AWS Secrets Manager, lihat Apa itu AWS Secrets Manager? di AWS Secrets Manager Panduan Pengguna. Anda juga dapat menggunakan Pusat Identitas AWS IAM untuk otorisasi.

Dengan API Data, Anda dapat mengakses data Amazon Redshift secara terprogram dengan aplikasi berbasis layanan web, termasuk AWS Lambda, Amazon SageMaker Notebook AI, dan AWS Cloud9. Untuk informasi lebih lanjut tentang aplikasi ini, lihat AWS Lambda, Amazon SageMaker AI, dan AWS Cloud9.

Untuk mempelajari lebih lanjut tentang API Data, lihat Memulai dengan Amazon Redshift Data API di AWS Blog Data Besar.

Bekerja dengan Amazon Redshift Data API

Sebelum Anda menggunakan Amazon Redshift Data API, tinjau langkah-langkah berikut:

  1. Tentukan apakah Anda, sebagai pemanggil API Data, diotorisasi. Untuk informasi selengkapnya tentang otorisasi, lihat Mengotorisasi akses ke API Data Amazon Redshift.

  2. Tentukan apakah Anda berencana untuk memanggil API Data dengan kredentif otentikasi dari Manajer Rahasia, kredenSIAL sementara, atau menggunakan Pusat Identitas AWS IAM. Untuk informasi selengkapnya, lihat Memilih kredentif otentikasi database saat memanggil Amazon Redshift Data API.

  3. Siapkan rahasia jika Anda menggunakan Manajer Rahasia untuk kredentif otentikasi. Untuk informasi selengkapnya, lihat Menyimpan kredentif database di AWS Secrets Manager.

  4. Tinjau pertimbangan dan batasan saat memanggil API Data. Untuk informasi selengkapnya, lihat Pertimbangan saat memanggil Amazon Redshift Data API.

  5. Panggil API Data dari AWS Command Line Interface (AWS CLI), dari kode Anda sendiri, atau menggunakan editor kueri di konsol Amazon Redshift. Sebagai contoh panggilan dari AWS CLI, lihat Memanggil API Data.

Pertimbangan saat memanggil Amazon Redshift Data API

Pertimbangkan hal berikut saat memanggil API Data:

  • Amazon Redshift Data API dapat mengakses database di cluster yang disediakan Amazon Redshift dan kelompok kerja Redshift Serverless. Untuk daftar Wilayah AWS di mana Redshift Data API tersedia, lihat titik akhir yang terdaftar untuk API Data Pergeseran Merah di Referensi Umum Amazon Web Services.

  • Durasi maksimum kueri adalah 24 jam.

  • Jumlah maksimum kueri aktif (STARTED dan SUBMITTED query) per cluster Amazon Redshift adalah 500.

  • Ukuran hasil kueri maksimum adalah 500 MB (setelah kompresi gzip). Jika panggilan mengembalikan lebih dari 500 MB data respons, panggilan berakhir.

  • Waktu retensi maksimum untuk hasil kueri adalah 24 jam.

  • Ukuran pernyataan kueri maksimum adalah 200 KB.

  • API Data tersedia untuk menanyakan semua kelompok kerja Tanpa Server, dan cluster simpul tunggal dan beberapa node yang disediakan dari jenis node berikut:

    • rg.besar

    • rg.xbesar

    • rg.4xbesar

    • rg.12xbesar

    • ra3.besar

    • ra3.xlplus

    • ra3.4xbesar

    • ra3.16xbesar

  • Cluster harus berada di cloud pribadi virtual (VPC) berdasarkan layanan Amazon VPC.

  • Secara default, pengguna dengan peran IAM yang sama dengan pelari ExecuteStatement atau BatchExecuteStatement Operasi API dapat bertindak pada pernyataan yang sama dengan CancelStatement, DescribeStatement, GetStatementResult, GetStatementResultV2, dan ListStatements Operasi API. Untuk bertindak pada pernyataan SQL yang sama dari pengguna lain, pengguna harus dapat mengambil peran IAM dari pengguna yang menjalankan pernyataan SQL. Untuk informasi selengkapnya tentang cara mengambil peran, lihat Mengotorisasi akses ke API Data Amazon Redshift.

  • Pernyataan SQL di Sqls parameter dari BatchExecuteStatement Operasi API berjalan secara serial dalam urutan array. Pernyataan SQL berikutnya tidak dimulai sampai pernyataan sebelumnya selesai. Secara default, semua pernyataan SQL dijalankan sebagai transaksi tunggal. Jika ada pernyataan SQL yang gagal, semua pekerjaan diputar kembali. Gunakan ExecutionMode parameter untuk mengontrol perilaku transaksi:

    • TRANSACTION (default) - Layanan menjalankan semua pernyataan SQL sebagai satu transaksi dan melakukan atau mengembalikan semuanya bersama-sama.

    • AUTO_COMMIT - Setiap pernyataan SQL dilakukan secara individual. Kegagalan satu pernyataan tidak mempengaruhi yang lain.

    Sebagai contoh, lihat Jalankan beberapa pernyataan SQL.

  • Waktu retensi maksimum untuk token klien yang digunakan di ExecuteStatement atau BatchExecuteStatement Operasi API adalah 8 jam.

  • Opsional WaitTimeSeconds parameter memiliki Data API menunggu hingga 30 detik saat operasi mengirimkan kueri baru atau menentang kueri yang sedang berlangsung. Ini mengurangi jumlah permintaan jajak pendapat, menghasilkan lebih sedikit perjalanan pulang pergi dan latensi yang lebih rendah. Untuk informasi selengkapnya, lihat Kurangi panggilan API dengan polling panjang.

  • Jika cluster yang disediakan Amazon Redshift dan grup kerja Redshift Serverless dienkripsi menggunakan kunci yang dikelola pelanggan, Redshift membuat hibah yang memungkinkan API Data Redshift menggunakan kunci untuk operasinya. Untuk informasi lebih lanjut, lihat Penggunaan AWS KMS dengan Amazon Redshift Data API.

  • Setiap API di Redshift Data API memiliki kuota transaksi per detik sebelum permintaan pembatasan. Untuk kuota, lihat Kuota untuk Amazon Redshift Data API. Jika tingkat permintaan melebihi kuota, a ThrottlingException dengan Kode Status HTTP: 400 dikembalikan. Untuk menanggapi pelambatan, gunakan strategi coba lagi seperti yang dijelaskan dalam Perilaku coba lagi di AWS Panduan Referensi SDK dan Alat. Strategi ini diterapkan secara otomatis untuk kesalahan pelambatan di beberapa AWS SDK.

    catatan

    Secara default di AWS Step Functions, percobaan ulang tidak diaktifkan. Jika Anda perlu memanggil Redshift Data API di mesin status Step Functions, maka sertakan ClientToken parameter idempotensi dalam panggilan API Redshift Data Anda. Nilai dari ClientToken perlu bertahan di antara percobaan ulang. Dalam contoh berikut cuplikan permintaan ke ExecuteStatement API, ekspresi States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7) menggunakan fungsi intrinsik untuk mengekstrak bagian UUID dari $$.Execution.Id, yang unik untuk setiap eksekusi mesin negara. Untuk informasi lebih lanjut, lihat Fungsi intrinsik di AWS Step Functions Panduan Pengembang.

    { "Database": "dev", "Sql": "select 1;", "ClusterIdentifier": "MyCluster", "ClientToken.$": "States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7)" }
    catatan

    Untuk mengisolasi akses saat Anda berbagi peran IAM tunggal, mintalah setiap orang mengambil peran dengan nama sesi peran yang berbeda (RoleSessionName). Kemudian lingkup akses dengan redshift-data:statement-owner-iam-userid dan redshift-data:session-owner-iam-userid kunci kondisi. RedshiftDbUser tag sesi bukan kontrol isolasi. Untuk informasi selengkapnya, lihat Mengonfigurasi izin IAM.

Memilih kredentif otentikasi database saat memanggil Amazon Redshift Data API

Saat memanggil API Data, Anda menggunakan salah satu metode otentikasi berikut untuk beberapa operasi API. Setiap metode membutuhkan kombinasi parameter yang berbeda.

Pusat Identitas AWS IAM

API Data dapat diakses dengan pengguna masuk tunggal yang terdaftar di Pusat Identitas AWS IAM. Untuk informasi tentang langkah-langkah untuk mengatur Pusat Identitas IAM, lihat Menggunakan API Data dengan propagasi identitas tepercaya.

AWS Secrets Manager

Dengan metode ini, berikan secret-arn Sebuah rahasia yang tersimpan di AWS Secrets Manager yang memiliki username dan password. Rahasia yang ditentukan berisi kredenSIAL untuk terhubung ke database Anda tentukan. Ketika Anda menghubungkan ke cluster, Anda juga memberikan nama database, Jika Anda memberikan pengidentifikasi cluster (dbClusterIdentifier), itu harus cocok dengan pengidentifikasi cluster yang disimpan dalam rahasia. Ketika Anda menghubungkan ke grup kerja tanpa server, Anda juga memberikan nama database. Untuk informasi selengkapnya, lihat Menyimpan kredentif database di AWS Secrets Manager.

Dengan metode ini, Anda juga dapat menyediakan region nilai yang menentukan Wilayah AWS di mana data Anda berada.

Kredensial Sementara

Dengan metode ini, pilih salah satu opsi berikut:

  • Saat menghubungkan ke grup kerja tanpa server, tentukan nama workgroup dan nama database. Nama pengguna database berasal dari identitas IAM. Contohnya, arn:iam::123456789012:user:foo memiliki nama pengguna database IAM:foo. Juga, izin untuk memanggil redshift-serverless:GetCredentials Operasi diperlukan.

  • Saat menghubungkan ke cluster sebagai identitas IAM, tentukan pengidentifikasi cluster dan nama database. Nama pengguna database berasal dari identitas IAM. Contohnya, arn:iam::123456789012:user:foo memiliki nama pengguna database IAM:foo. Juga, izin untuk memanggil redshift:GetClusterCredentialsWithIAM Operasi diperlukan.

  • Saat menghubungkan ke cluster sebagai pengguna database, tentukan pengidentifikasi cluster, nama database, dan nama pengguna database. Juga, izin untuk memanggil redshift:GetClusterCredentials Operasi diperlukan. Untuk informasi tentang cara bergabung dengan grup database saat menghubungkan dengan metode ini, lihat Bergabung dengan grup database saat menghubungkan ke cluster.

Dengan metode ini, Anda juga dapat menyediakan region nilai yang menentukan Wilayah AWS di mana data Anda berada.

Memetakan tipe data JDBC saat memanggil Amazon Redshift Data API

Tabel berikut memetakan tipe data Java Database Connectivity (JDBC) ke jenis data yang Anda tentukan dalam panggilan API Data.

Jenis data JDBC

Jenis data API Data

INTEGER, SMALLINT, BIGINT

LONG

FLOAT, REAL, DOUBLE

DOUBLE

DECIMAL

STRING

BOOLEAN, BIT

BOOLEAN

BLOB, BINARY, LONGVARBINARY

BLOB

VARBINARY

STRING

CLOB

STRING

Jenis lainnya (termasuk jenis yang terkait dengan tanggal dan waktu)

STRING

Nilai string diteruskan ke database Amazon Redshift dan secara implisit diubah menjadi tipe data database.

catatan

Saat ini, API Data tidak mendukung array pengidentifikasi unik universal (UUID).

Menjalankan pernyataan SQL dengan parameter saat memanggil Amazon Redshift Data API

Anda dapat mengontrol teks SQL yang dikirimkan ke mesin database dengan memanggil operasi API Data menggunakan parameter untuk bagian dari pernyataan SQL. Parameter bernama menyediakan cara yang fleksibel untuk meneruskan parameter tanpa hardcoding mereka dalam teks SQL. Mereka membantu Anda menggunakan kembali teks SQL dan menghindari masalah injeksi SQL.

Contoh berikut menunjukkan parameter bernama a parameters bidang sebuah execute-statement atau batch-execute-statement AWS CLI perintah.

--parameters "[{\"name\": \"id\", \"value\": \"1\"},{\"name\": \"address\", \"value\": \"Seattle\"}]"

Pertimbangkan hal berikut saat menggunakan parameter bernama:

  • Parameter bernama hanya dapat digunakan untuk mengganti nilai dalam pernyataan SQL.

    • Anda dapat mengganti nilai-nilai dalam pernyataan INSERT, seperti INSERT INTO mytable VALUES(:val1).

      Parameter bernama dapat dalam urutan apa pun dan parameter dapat digunakan lebih dari satu kali dalam teks SQL. Opsi parameter yang ditunjukkan dalam contoh sebelumnya, nilai-nilai 1 dan Seattle dimasukkan ke dalam kolom tabel id dan address. Dalam teks SQL, Anda menentukan parameter bernama sebagai berikut:

      --sql "insert into mytable values (:id, :address)"
    • Anda dapat mengganti nilai-nilai dalam klausa kondisi, seperti WHERE attr >= :val1, WHERE attr BETWEEN :val1 AND :val2, dan HAVING COUNT(attr) > :val.

    • Anda tidak dapat mengganti nama kolom dalam pernyataan SQL, seperti SELECT column-name, ORDER BY column-name, atau GROUP BY column-name.

      Misalnya, pernyataan SELECT berikut gagal dengan sintaks yang tidak valid.

      --sql "SELECT :colname, FROM event" --parameters "[{\"name\": \"colname\", \"value\": \"eventname\"}]"

      Jika Anda menggambarkan (describe-statement operasi) pernyataan dengan kesalahan sintaks, QueryString dikembalikan tidak menggantikan nama kolom untuk parameter ("QueryString": "SELECT :colname, FROM event"), dan kesalahan dilaporkan (KESALAHAN: kesalahan sintaks di atau dekat\ "FROM\”\nPosisi: 12).

    • Anda tidak dapat mengganti nama kolom dalam fungsi agregat, seperti COUNT(column-name), AVG(column-name), atau SUM(column-name).

    • Anda tidak dapat mengganti nama kolom dalam klausa JOIN.

  • Ketika SQL berjalan, data secara implisit ditransfer ke tipe data. Untuk informasi selengkapnya tentang pengecoran tipe data, lihat Tipe data di Panduan Pengembang Database Amazon Redshift.

  • Anda tidak dapat menetapkan nilai ke NULL. Data API menafsirkannya sebagai string literal NULL. Contoh berikut menggantikan id dengan string literal null. Bukan nilai SQL NULL.

    --parameters "[{\"name\": \"id\", \"value\": \"null\"}]"
  • Anda tidak dapat menetapkan nilai panjang nol. Pernyataan SQL Data API gagal. Contoh berikut mencoba untuk mengatur id dengan nilai panjang nol dan menghasilkan kegagalan pernyataan SQL.

    --parameters "[{\"name\": \"id\", \"value\": \"\"}]"
  • Anda tidak dapat mengatur nama tabel dalam pernyataan SQL dengan parameter. Data API mengikuti aturan JDBC PreparedStatement.

  • Output dari describe-statement operasi mengembalikan parameter query dari pernyataan SQL.

  • Keduanya execute-statement dan batch-execute-statement operasi mendukung pernyataan SQL dengan parameter. Saat menggunakan batch-execute-statement, parameter dibagikan di semua pernyataan SQL dalam batch. Setiap pernyataan SQL dapat mereferensikan subset dari parameter yang disediakan, tetapi setiap parameter harus digunakan oleh setidaknya satu pernyataan SQL.

Menjalankan pernyataan SQL dengan token idempotensi saat memanggil Amazon Redshift Data API

Saat Anda membuat permintaan API yang bermutasi, permintaan biasanya mengembalikan hasil sebelum alur kerja asinkron operasi selesai. Operasi mungkin juga habis waktu atau mengalami masalah server lain sebelum selesai, meskipun permintaan telah mengembalikan hasilnya. Hal ini dapat membuat sulit untuk menentukan apakah permintaan berhasil atau tidak, dan dapat menyebabkan beberapa percobaan ulang untuk memastikan bahwa operasi selesai dengan sukses. Namun, jika permintaan asli dan percobaan ulang berikutnya berhasil, operasi selesai beberapa kali. Ini berarti bahwa Anda mungkin memperbarui lebih banyak sumber daya daripada yang Anda inginkan.

Idempotensi memastikan bahwa permintaan API selesai tidak lebih dari satu kali. Dengan permintaan idempotent, jika permintaan asli berhasil diselesaikan, setiap percobaan ulang berikutnya berhasil diselesaikan tanpa melakukan tindakan lebih lanjut. API Data ExecuteStatement dan BatchExecuteStatement operasi memiliki opsional ClientToken parameter idempoten. Yang ClientToken kedaluwarsa setelah 8 jam.

penting

Jika Anda menelepon ExecuteStatement dan BatchExecuteStatement Operasi dari AWS SDK, secara otomatis menghasilkan token klien untuk digunakan saat mencoba lagi. Dalam hal ini, kami tidak menyarankan menggunakan client-token parameter dengan ExecuteStatement dan BatchExecuteStatement operasi. Lihat CloudTrail log untuk melihat ClientToken. Untuk CloudTrail contoh log, lihat Contoh API Data Amazon Redshift.

Berikut ini execute-statement AWS CLI perintah menggambarkan opsional client-token parameter untuk idempotensi.

aws redshift-data execute-statement --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn --cluster-identifier mycluster-test --sql "select * from stl_query limit 1" --database dev --client-token b855dced-259b-444c-bc7b-d3e8e33f94g1

Tabel berikut menunjukkan beberapa tanggapan umum yang mungkin Anda dapatkan untuk permintaan API idempotent, dan memberikan rekomendasi coba lagi.

Respons Rekomendasi Komentar

200 (OK)

Jangan coba lagi

Permintaan asli berhasil diselesaikan. Setiap percobaan ulang berikutnya berhasil kembali.

Kode respons seri 400

Jangan coba lagi

Ada masalah dengan permintaan, dari antara yang berikut:

  • Ini termasuk parameter atau kombinasi parameter yang tidak valid.

  • Ini menggunakan tindakan atau sumber daya yang Anda tidak memiliki izin.

  • Ini menggunakan sumber daya yang sedang dalam proses mengubah keadaan.

Jika permintaan melibatkan sumber daya yang sedang dalam proses mengubah status, mencoba kembali permintaan mungkin bisa berhasil.

Kode respons seri 500

Coba lagi

Kesalahan ini disebabkan oleh AWS masalah sisi server dan umumnya bersifat sementara. Ulangi permintaan dengan strategi mundur yang sesuai.

Untuk informasi tentang kode respons Amazon Redshift, lihat Kesalahan Umum di Referensi API Amazon Redshift.

Menjalankan pernyataan SQL dengan penggunaan kembali sesi saat memanggil Amazon Redshift Data API

Ketika Anda membuat permintaan API untuk menjalankan pernyataan SQL, sesi di mana SQL berjalan biasanya dihentikan ketika SQL selesai. Untuk menjaga sesi tetap aktif selama beberapa detik tertentu, API Data ExecuteStatement dan BatchExecuteStatement operasi memiliki opsional SessionKeepAliveSeconds parameter. SEBUAH SessionId kolom respons berisi identitas sesi yang kemudian dapat digunakan di berikutnya ExecuteStatement dan BatchExecuteStatement operasi. Dalam panggilan berikutnya Anda dapat menentukan yang lain SessionKeepAliveSeconds untuk mengubah waktu tunggu idle. Jika SessionKeepAliveSeconds tidak berubah, pengaturan waktu tunggu idle awal tetap ada. Pertimbangkan hal berikut saat menggunakan penggunaan kembali sesi:

  • Nilai maksimum SessionKeepAliveSeconds adalah 24 jam.

  • Sesi dapat berlangsung paling lama 24 jam. Setelah 24 jam sesi ditutup secara paksa dan kueri dalam proses dihentikan.

  • Jumlah sesi maksimum per cluster Amazon Redshift atau kelompok kerja Redshift Serverless adalah 500.

  • Anda hanya dapat menjalankan satu kueri pada satu waktu dalam satu sesi. Anda harus menunggu sampai kueri selesai untuk menjalankan kueri berikutnya dalam sesi yang sama. Artinya, Anda tidak dapat menjalankan kueri secara paralel dalam sesi yang disediakan.

  • API Data tidak dapat mengantri kueri untuk sesi tertentu.

Untuk mengambil SessionId yang digunakan oleh panggilan ke ExecuteStatement dan BatchExecuteStatement operasi, panggilan DescribeStatement dan ListStatements operasi. Untuk membuat daftar sesi dan statusnya, gunakan ListSessions operasi. Untuk informasi selengkapnya, lihat Daftar sesi.

Contoh berikut menunjukkan penggunaan SessionKeepAliveSeconds dan SessionId parameter untuk menjaga sesi tetap hidup dan digunakan kembali. Pertama, panggil execute-statement AWS CLI perintah dengan opsional session-keep-alive-seconds parameter disetel ke 2.

aws redshift-data execute-statement --session-keep-alive-seconds 2 --sql "select 1" --database dev --workgroup-name mywg

Respons berisi pengenal sesi.

{ "WorkgroupName": "mywg", "CreatedAt": 1703022996.436, "Database": "dev", "DbUser": "awsuser", "Id": "07c5ffea-76d6-4786-b62c-4fe3ef529680", "SessionId": "5a254dc6-4fc2-4203-87a8-551155432ee4" }

Kemudian, panggil execute-statement AWS CLI perintah dengan SessionId kembali dari panggilan pertama. Dan secara opsional, tentukan session-keep-alive-seconds parameter disetel ke 10 untuk mengubah nilai batas waktu idle.

aws redshift-data execute-statement --sql "select 1" --session-id 5a254dc6-4fc2-4203-87a8-551155432ee4 --session-keep-alive-seconds 10

Mengambil hasil pernyataan SQL

Anda menggunakan operasi API Data yang berbeda untuk mengambil hasil SQL tergantung pada format hasil. Saat Anda menelepon ExecuteStatement dan BatchExecuteStatement operasi, Anda dapat menentukan apakah hasilnya diformat sebagai JSON atau CSV. Jika Anda tidak menentukan, defaultnya adalah JSON. Untuk mengambil hasil JSON, gunakan GetStatementResult operasi. Untuk mengambil hasil CSV, gunakan GetStatementResultV2 operasi.

Hasil yang dikembalikan dalam format JSON adalah catatan yang menyertakan metadata tentang setiap kolom. Setiap catatan dalam format JSON. Sebagai contoh, respon dari GetStatementResult terlihat mirip dengan ini:

{ "ColumnMetadata": [ { "isCaseSensitive": false, "isCurrency": false, "isSigned": true, "label": "?column?", "name": "?column?", "nullable": 1, "precision": 10, "scale": 0, "schemaName": "", "tableName": "", "typeName": "int4", "length": 0 } ], "NextToken": "<token>", "Records": [ [ { "longValue": 1 } ] ], "TotalNumRows": <number> }

Hasil yang dikembalikan dalam format CSV adalah catatan yang menyertakan metadata tentang setiap kolom. Hasil dikembalikan dalam potongan 1 MB, di mana setiap potongan dapat menyimpan sejumlah baris dalam format CSV. Setiap permintaan mengembalikan hasil hingga 15 MB. Jika hasil lebih besar dari 15 MB, maka token halaman berikutnya dikembalikan untuk melanjutkan pengambilan hasilnya. Sebagai contoh, respon dari GetStatementResultV2 terlihat mirip dengan ini:

{ "ColumnMetadata": [ { "isCaseSensitive": false, "isCurrency": false, "isSigned": true, "label": "?column?", "name": "?column?", "nullable": 1, "precision": 10, "scale": 0, "schemaName": "", "tableName": "", "typeName": "int4", "length": 0 }, { "isCaseSensitive": false, "isCurrency": false, "isSigned": true, "label": "?column?", "name": "?column?", "nullable": 1, "precision": 10, "scale": 0, "schemaName": "", "tableName": "", "typeName": "int4", "length": 0 }, { "isCaseSensitive": false, "isCurrency": false, "isSigned": true, "label": "?column?", "name": "?column?", "nullable": 1, "precision": 10, "scale": 0, "schemaName": "", "tableName": "", "typeName": "int4", "length": 0 } ], "NextToken": "<token>", "Records": [ [ { "CSVRecords":"1,2,3\r\n4,5,6\r\n7,8,9\r\n, ... 1MB" // First 1MB Chunk }, { "CSVRecords":"1025,1026,1027\r\n1028,1029,1030\r\n...2MB" // Second 1MB chunk } ... ] ], "ResultFormat" : "CSV", "TotalNumRows": <number> }