La commande select-object exécute des instructions SQL sur des objets et renvoie les résultats.
Notes d'utilisation
Par défaut, un compte Alibaba Cloud est autorisé à effectuer des opérations sur les objets. Pour réaliser ces opérations en tant qu'utilisateur RAM ou via le Security Token Service (STS), l'autorisation oss:GetObject est requise. Pour plus d'informations, consultez la rubrique Grant a custom policy.
Syntaxe de la commande
ossutil api select-object --bucket value --key value --select-request value [flags]
|
Parameter |
Type |
Description |
|
--bucket |
string |
Nom du bucket. |
|
--key |
string |
Chemin complet de l'objet. |
|
--select-request |
string |
Conteneur contenant les requêtes SelectObject. |
La commande select-object correspond à l'opération SelectObject. Pour plus d'informations sur les paramètres de l'opération SelectObject, consultez la rubrique SelectObject.
--select-request
L'option de configuration --select-request prend en charge les formats XML et JSON. Si la valeur de l'option contient le préfixe « file:// », les paramètres de configuration sont lus depuis le fichier spécifié.
-
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 } }
Pour connaître les options de ligne de commande globales prises en charge, consultez la rubrique Supported global command line options.
Exemples
-
Exécutez des instructions SQL sur exampleobject dans
examplebucket. Cette opération prend en charge la syntaxe de requête pour les objets CSV.-
Créez un fichier de configuration nommé select-request.xml et ajoutez le code suivant :
<?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>Exemple de commande :
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xml -
Créez un fichier de configuration nommé select-request.json et ajoutez le code suivant :
{ "Expression": "c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==", "InputSerialization": { "CSV": { "FileHeaderInfo": "Use", "Range": "line-range=0-100" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "," } } }Exemple de commande :
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.json -
Configurez les paramètres de la commande suivante au 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\":\",\"}}}"
-
-
Exécutez des instructions SQL sur exampleobject dans
examplebucket. Cette opération prend en charge la syntaxe de requête pour les objets JSON.-
Créez un fichier de configuration nommé select-request.xml et ajoutez le code suivant :
<?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>Exemple de commande :
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xml -
Créez un fichier de configuration nommé select-request.json et ajoutez le code suivant :
{ "Expression": "c2VsZWN0ICogZnJvbSBvc3NvYmplY3Qub2JqZWN0c1sqXSB3aGVyZSBwYXJ0eSA9ICdEZW1vY3JhdCc=", "InputSerialization": { "CSV": {}, "JSON": { "Type": "DOCUMENT" } }, "OutputSerialization": { "JSON": { "RecordDelimiter": "LA==" } } }Exemple de commande :
ossutil api select-object --bucket examplebucket --key exampleobject --select-request file://select-request.xml -
Configurez les paramètres de la commande suivante au 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\":\",\"}}}"
-