select-objectコマンドは、オブジェクトに対してSQL文を実行し、実行結果を照会するために使用されます。
使用上の注意
デフォルトでは、Alibaba Cloudアカウントにはオブジェクトに対する操作を実行する権限があります。 RAMユーザーとして、またはSecurity Token Service (STS) を使用して操作を実行するには、oss:GetObject権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。
コマンド構文
ossutil api select-object --bucket value --key value --select-request value [flags]パラメーター | タイプ | 説明 |
-- bucket | String | バケットの名前。 |
-- キー | String | オブジェクトのフルパス。 |
-- select-request | String | SelectObjectリクエストを格納するコンテナ。 |
select-objectコマンドは、SelectObject操作に対応します。 SelectObject操作のパラメーターの詳細については、「SelectObject」をご参照ください。
-- select-request
-- select-request設定オプションは、XML形式とJSON形式の両方をサポートします。 オプションの値に 'file:// 'プレフィックスが含まれている場合、設定パラメーターは指定されたファイルから読み取られます。
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>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 } }
サポートされているグローバルコマンドラインオプションについては、「サポートされているグローバルコマンドラインオプション」をご参照ください。
例
examplebucketのexampleobjectでSQL文を実行します。 この操作は、CSVオブジェクトのリクエスト構文をサポートします。select-request.xmlという名前の構成ファイルを作成し、次のコードを追加します。
<?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>サンプルコマンド:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xmlselect-request.jsonという名前の構成ファイルを作成し、次のコードを追加します。
{ "Expression": "c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==", "InputSerialization": { "CSV": { "FileHeaderInfo": "Use", "Range": "line-range=0-100" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "," } } }サンプルコマンド:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.json次のコマンドでパラメーターを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\":\",\"}}}"
examplebucketのexampleobjectでSQL文を実行します。 この操作は、JSONオブジェクトのリクエスト構文をサポートします。select-request.xmlという名前の構成ファイルを作成し、次のコードを追加します。
<?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>サンプルコマンド:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xmlselect-request.jsonという名前の構成ファイルを作成し、次のコードを追加します。
{ "Expression": "c2VsZWN0ICogZnJvbSBvc3NvYmplY3Qub2JqZWN0c1sqXSB3aGVyZSBwYXJ0eSA9ICdEZW1vY3JhdCc=", "InputSerialization": { "CSV": {}, "JSON": { "Type": "DOCUMENT" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "LA==" } } }サンプルコマンド:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xml次のコマンドでパラメーターを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\":\",\"}}}"