El comando select-object se utiliza para ejecutar sentencias SQL sobre objetos y consultar los resultados de la ejecución.
Notas de uso
De forma predeterminada, una cuenta de Alibaba Cloud tiene los permisos necesarios para realizar operaciones en objetos. Para realizar operaciones como usuario de RAM o mediante Security Token Service (STS), se requiere el permiso oss:GetObject. Para obtener más información, consulte Grant a custom policy.
Sintaxis del comando
ossutil api select-object --bucket value --key value --select-request value [flags]
|
Parámetro |
Tipo |
Descripción |
|
--bucket |
string |
Nombre del bucket. |
|
--key |
string |
Ruta completa del objeto. |
|
--select-request |
string |
Contenedor que almacena las solicitudes de SelectObject. |
El comando select-object corresponde a la operación SelectObject. Para obtener más información sobre los parámetros de la operación SelectObject, consulte SelectObject.
--select-request
La opción de configuración --select-request admite formatos XML y JSON. Si el valor de la opción contiene el prefijo 'file://', los parámetros de configuración se leen del archivo especificado.
-
Formato 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> -
Formato 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 } }
Para consultar las opciones globales de línea de comandos compatibles, consulte Supported global command line options.
Ejemplos
-
Ejecute sentencias SQL sobre exampleobject en
examplebucket. Esta operación es compatible con la sintaxis de solicitud para objetos CSV.-
Cree un archivo de configuración llamado select-request.xml y agregue a continuación código:
<?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>Comando de ejemplo:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xml -
Cree un archivo de configuración llamado select-request.json y agregue a continuación código:
{ "Expression": "c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==", "InputSerialization": { "CSV": { "FileHeaderInfo": "Use", "Range": "line-range=0-100" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "," } } }Comando de ejemplo:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.json -
Configure los parámetros en a continuación comando utilizando el formato 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\":\",\"}}}"
-
-
Ejecute sentencias SQL sobre exampleobject en
examplebucket. Esta operación es compatible con la sintaxis de solicitud para objetos JSON.-
Cree un archivo de configuración llamado select-request.xml y agregue a continuación código:
<?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>Comando de ejemplo:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xml -
Cree un archivo de configuración llamado select-request.json y agregue a continuación código:
{ "Expression": "c2VsZWN0ICogZnJvbSBvc3NvYmplY3Qub2JqZWN0c1sqXSB3aGVyZSBwYXJ0eSA9ICdEZW1vY3JhdCc=", "InputSerialization": { "CSV": {}, "JSON": { "Type": "DOCUMENT" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "LA==" } } }Comando de ejemplo:
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xml -
Configure los parámetros en a continuación comando utilizando el formato 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\":\",\"}}}"
-