Contoh menggunakan Amazon S3 Select pada objek - Amazon Simple Storage Service

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

Contoh menggunakan Amazon S3 Select pada objek

penting

Amazon S3 Select tidak lagi tersedia untuk pelanggan baru. Pelanggan Amazon S3 Select yang sudah ada dapat terus menggunakan fitur seperti biasa. Pelajari selengkapnya

Anda dapat menggunakan S3 Select untuk memilih konten dari satu objek dengan menggunakan konsol Amazon S3, REST API, dan. AWS SDKs

Untuk informasi lebih lanjut tentang fungsi SQL yang didukung untuk S3 Select, lihat Fungsi SQL.

Untuk memilih konten dari objek di konsol Amazon S3
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Pilih bucket yang berisi objek yang ingin Anda pilih kontennya, lalu pilih nama objeknya.

  4. Pilih Tindakan objek, dan pilih Kueri dengan S3 Select.

  5. Konfigurasikan Pengaturan input, berdasarkan format data input Anda.

  6. Konfigurasikan Pengaturan output, berdasarkan format output yang ingin Anda terima.

  7. Untuk mengekstrak catatan dari objek yang dipilih, di bawah kueri SQL, masukkan perintah SELECT SQL. Untuk informasi lebih lanjut tentang cara menulis perintah SQL, lihat Referensi SQL untuk Amazon S3 Select.

  8. Setelah memasukkan kueri SQL, pilih Jalankan kueri SQL. Kemudian, di bawah Hasil kueri, Anda akan melihat hasil kueri SQL Anda.

Anda dapat menggunakan AWS SDKs untuk memilih konten dari objek. Namun, jika aplikasi Anda memerlukannya, Anda dapat mengirimkan permintaan REST secara langsung. Untuk informasi lebih lanjut tentang permintaan dan format respons, kunjungi SelectObjectContent.

Anda dapat menggunakan Amazon S3 Select untuk memilih beberapa konten objek dengan menggunakan metode iniselectObjectContent. Jika metode ini berhasil, Amazon S3 Select akan menampilkan ekspresi SQL.

Java

Kode Java berikut ini menampilkan nilai kolom pertama untuk setiap catatan yang disimpan di dalam objek yang mengandung data yang disimpan dengan format CSV. Kode ini juga meminta agar pesan Progress dan Stats dapat ditampilkan. Anda harus menyediakan nama bucket yang valid dan objek yang mengandung data dengan format CSV.

Untuk petunjuk cara membuat dan menguji sampel yang berfungsi, lihat Memulai di Panduan AWS SDK untuk Java Pengembang.

package com.amazonaws; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.CSVInput; import com.amazonaws.services.s3.model.CSVOutput; import com.amazonaws.services.s3.model.CompressionType; import com.amazonaws.services.s3.model.ExpressionType; import com.amazonaws.services.s3.model.InputSerialization; import com.amazonaws.services.s3.model.OutputSerialization; import com.amazonaws.services.s3.model.SelectObjectContentEvent; import com.amazonaws.services.s3.model.SelectObjectContentEventVisitor; import com.amazonaws.services.s3.model.SelectObjectContentRequest; import com.amazonaws.services.s3.model.SelectObjectContentResult; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.concurrent.atomic.AtomicBoolean; import static com.amazonaws.util.IOUtils.copy; /** * This example shows how to query data from S3Select and consume the response in the form of an * InputStream of records and write it to a file. */ public class RecordInputStreamExample { private static final String BUCKET_NAME = "${my-s3-bucket}"; private static final String CSV_OBJECT_KEY = "${my-csv-object-key}"; private static final String S3_SELECT_RESULTS_PATH = "${my-s3-select-results-path}"; private static final String QUERY = "select s._1 from S3Object s"; public static void main(String[] args) throws Exception { final AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient(); SelectObjectContentRequest request = generateBaseCSVRequest(BUCKET_NAME, CSV_OBJECT_KEY, QUERY); final AtomicBoolean isResultComplete = new AtomicBoolean(false); try (OutputStream fileOutputStream = new FileOutputStream(new File (S3_SELECT_RESULTS_PATH)); SelectObjectContentResult result = s3Client.selectObjectContent(request)) { InputStream resultInputStream = result.getPayload().getRecordsInputStream( new SelectObjectContentEventVisitor() { @Override public void visit(SelectObjectContentEvent.StatsEvent event) { System.out.println( "Received Stats, Bytes Scanned: " + event.getDetails().getBytesScanned() + " Bytes Processed: " + event.getDetails().getBytesProcessed()); } /* * An End Event informs that the request has finished successfully. */ @Override public void visit(SelectObjectContentEvent.EndEvent event) { isResultComplete.set(true); System.out.println("Received End Event. Result is complete."); } } ); copy(resultInputStream, fileOutputStream); } /* * The End Event indicates all matching records have been transmitted. * If the End Event is not received, the results may be incomplete. */ if (!isResultComplete.get()) { throw new Exception("S3 Select request was incomplete as End Event was not received."); } } private static SelectObjectContentRequest generateBaseCSVRequest(String bucket, String key, String query) { SelectObjectContentRequest request = new SelectObjectContentRequest(); request.setBucketName(bucket); request.setKey(key); request.setExpression(query); request.setExpressionType(ExpressionType.SQL); InputSerialization inputSerialization = new InputSerialization(); inputSerialization.setCsv(new CSVInput()); inputSerialization.setCompressionType(CompressionType.NONE); request.setInputSerialization(inputSerialization); OutputSerialization outputSerialization = new OutputSerialization(); outputSerialization.setCsv(new CSVOutput()); request.setOutputSerialization(outputSerialization); return request; } }
JavaScript

Untuk JavaScript contoh yang menggunakan operasi AWS SDK untuk JavaScript with S3 SelectObjectContent API untuk memilih catatan dari file JSON dan CSV yang disimpan di Amazon S3, lihat posting blog Memperkenalkan dukungan untuk Amazon S3 Select di file. AWS SDK untuk JavaScript

Python

Untuk contoh Python tentang penggunaan kueri SQL untuk melakukan pencarian lewat data yang dimuat ke Amazon S3 sebagai file nilai terpisah-koma (CSV) dengan menggunakan S3 Select, lihat postingan blog Meminta data tanpa server atau basis data dengan menggunakan Amazon S3 Select.