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
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, lihatSQLfungsi.
Untuk memilih konten dari objek di konsol Amazon S3
-
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih Bucket.
-
Pilih bucket yang berisi objek yang ingin Anda pilih kontennya, lalu pilih nama objeknya.
-
Pilih Tindakan objek, dan pilih Kueri dengan S3 Select.
-
Konfigurasikan Pengaturan input, berdasarkan format data input Anda.
-
Konfigurasikan Pengaturan output, berdasarkan format output yang ingin Anda terima.
-
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.
-
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 selengkapnya tentang format permintaan dan respons, lihat 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.