Perintah select-object digunakan untuk mengeksekusi pernyataan SQL pada objek dan mengambil hasil dari eksekusi tersebut.
Catatan penggunaan
Secara default, akun Alibaba Cloud memiliki izin untuk melakukan operasi pada objek. Namun, jika menggunakan akun RAM atau Security Token Service (STS), diperlukan izin oss:GetObject. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.
Sintaks perintah
ossutil api select-object --bucket value --key value --select-request value [flags]Parameter | Tipe | Deskripsi |
--bucket | string | Nama bucket. |
--key | string | Jalur lengkap objek. |
--select-request | string | Kontainer yang menyimpan permintaan SelectObject. |
Perintah select-object sesuai dengan operasi SelectObject. Untuk detail lebih lanjut tentang parameter dalam operasi SelectObject, lihat SelectObject.
--select-request
Opsi konfigurasi --select-request mendukung format XML dan JSON. Jika nilai opsi diawali dengan 'file://', parameter konfigurasi akan dibaca dari file yang ditentukan.
Format XML:
<SelectRequest> <Expression>string</Expression> <InputSerialization> <CompressionType>string</CompressionType> <CSV> <Range>string</Range> <AllowQuotedRecordDelimiter>boolean</AllowQuotedRecordDelimiter> <FileHeaderInfo>string</FileHeaderInfo> <RecordDelimiter>string</RecordDelimiter> <FieldDelimiter>string</FieldDelimiter> <QuoteCharacter>string</QuoteCharacter> <CommentCharacter>string</CommentCharacter> </CSV> <JSON> <Range>string</Range> <ParseJsonNumberAsString>boolean</ParseJsonNumberAsString> <Type>string</Type> </JSON> </InputSerialization> <OutputSerialization> <CSV> <RecordDelimiter>string</RecordDelimiter> <FieldDelimiter>string</FieldDelimiter> </CSV> <JSON> <RecordDelimiter>string</RecordDelimiter> </JSON> <KeepAllColumns>boolean</KeepAllColumns> <OutputHeader>boolean</OutputHeader> <OutputRawData>boolean</OutputRawData> <EnablePayloadCrc>boolean</EnablePayloadCrc> </OutputSerialization> <Options> <MaxSkippedRecordsAllowed>integer</MaxSkippedRecordsAllowed> <SkipPartialDataRecord>boolean</SkipPartialDataRecord> </Options> </SelectRequest>Format JSON:
{ "Options": { "SkipPartialDataRecord": boolean, "MaxSkippedRecordsAllowed": integer }, "Expression": "string", "InputSerialization": { "CompressionType": "string", "CSV": { "FileHeaderInfo": "string", "RecordDelimiter": "string", "FieldDelimiter": "string", "QuoteCharacter": "string", "CommentCharacter": "string", "Range": "string", "AllowQuotedRecordDelimiter": boolean }, "JSON": { "Range": "string", "ParseJsonNumberAsString": boolean, "Type": "string" } }, "OutputSerialization": { "CSV": { "RecordDelimiter": "string", "FieldDelimiter": "string" }, "JSON": { "RecordDelimiter": "string" }, "KeepAllColumns": boolean, "OutputHeader": boolean, "OutputRawData": boolean, "EnablePayloadCrc": boolean } }
Untuk daftar opsi baris perintah global yang didukung, lihat Opsi Baris Perintah Global yang Didukung.
Contoh
Eksekusi pernyataan SQL pada exampleobject di
examplebucket. Operasi ini mendukung sintaks permintaan untuk objek CSV.Buat file konfigurasi bernama select-request.xml dan tambahkan kode berikut:
<?xml version="1.0" encoding="UTF-8"?> <SelectRequest> <Expression>c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==</Expression> <InputSerialization> <CSV> <FileHeaderInfo>Use</FileHeaderInfo> <Range>line-range=0-100</Range> </CSV> </InputSerialization> <OutputSerialization> <JSON> <RecordDelimiter>,</RecordDelimiter> </JSON> </OutputSerialization> </SelectRequest>Contoh perintah:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xmlBuat file konfigurasi bernama select-request.json dan tambahkan kode berikut:
{ "Expression": "c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==", "InputSerialization": { "CSV": { "FileHeaderInfo": "Use", "Range": "line-range=0-100" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "," } } }Contoh perintah:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.jsonKonfigurasikan parameter dalam perintah berikut dalam format JSON:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request "{\"Expression\":\"c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==\",\"InputSerialization\":{\"CSV\":{\"FileHeaderInfo\":\"Use\",\"Range\":\"line-range=0-100\"}},\"OutputSerialization\":{\"JSON\":{\"RecordDelimiter\":\",\"}}}"
Eksekusi pernyataan SQL pada exampleobject di
examplebucket. Operasi ini mendukung sintaks permintaan untuk objek JSON.Buat file konfigurasi bernama select-request.xml dan tambahkan kode berikut:
<?xml version="1.0" encoding="UTF-8"?> <SelectRequest> <Expression>c2VsZWN0ICogZnJvbSBvc3NvYmplY3Qub2JqZWN0c1sqXSB3aGVyZSBwYXJ0eSA9ICdEZW1vY3JhdCc=</Expression> <InputSerialization> <CSV> <SplitRange></SplitRange> </CSV> <JSON> <Type>DOCUMENT</Type> <SplitRange></SplitRange> </JSON> </InputSerialization> <OutputSerialization> <CSV></CSV> <JSON> <RecordDelimiter>LA==</RecordDelimiter> </JSON> </OutputSerialization> <Options></Options> </SelectRequest>Contoh perintah:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xmlBuat file konfigurasi bernama select-request.json dan tambahkan kode berikut:
{ "Expression": "c2VsZWN0ICogZnJvbSBvc3NvYmplY3Qub2JqZWN0c1sqXSB3aGVyZSBwYXJ0eSA9ICdEZW1vY3JhdCc=", "InputSerialization": { "CSV": {}, "JSON": { "Type": "DOCUMENT" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "LA==" } } }Contoh perintah:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xmlKonfigurasikan parameter dalam perintah berikut dalam format JSON:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request "{\"Expression\":\"c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==\",\"InputSerialization\":{\"CSV\":{\"FileHeaderInfo\":\"Use\",\"Range\":\"line-range=0-100\"}},\"OutputSerialization\":{\"JSON\":{\"RecordDelimiter\":\",\"}}}"