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, file, REST API dan. AWS SDKs

Untuk informasi selengkapnya tentang SQL fungsi yang didukung untuk S3 Select, lihatFungsi 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 SQLkueri, masukkan SELECT SQL perintah. Untuk informasi selengkapnya tentang cara menulis SQL perintah, lihatSQLreferensi untuk Amazon S3 Select.

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

Anda dapat menggunakan AWS SDKs untuk memilih konten dari objek. Namun, jika aplikasi Anda membutuhkannya, Anda dapat mengirim REST permintaan 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, ia mengembalikan hasil SQL ekspresi.

Java

Kode Java berikut mengembalikan nilai kolom pertama untuk setiap record yang disimpan dalam objek yang berisi data yang disimpan dalam CSV format. Kode ini juga meminta agar pesan Progress dan Stats dapat ditampilkan. Anda harus memberikan nama bucket yang valid dan objek yang berisi data dalam CSV format.

Untuk petunjuk cara membuat dan menguji sampel yang berfungsi, lihat Memulai di Panduan AWS SDK for 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 SelectObjectContent API operasi AWS SDK for JavaScript with the S3 untuk memilih catatan dari JSON dan CSV file yang disimpan di Amazon S3, lihat posting blog Memperkenalkan dukungan untuk Amazon S3 Select di. AWS SDK for JavaScript

Python

Untuk contoh Python menggunakan SQL kueri untuk mencari data yang dimuat ke Amazon S3 sebagai file value (CSV) dipisahkan koma menggunakan S3 Select, lihat posting blog Mengkueri data tanpa server atau database menggunakan Amazon S3 Select.