Comment exécuter une requête Select sur des objets stockés dans la classe de stockage Amazon S3 Glacier ou dans un coffre Amazon S3 Glacier ?

Date de la dernière mise à jour : 20/06/2019

Je souhaite exécuter une requête Select sur des objets que j'ai stockés à l'aide de la classe de stockage Amazon Simple Storage Service (Amazon S3) Glacier. Ou bien je souhaite exécuter une requête Select sur des objets que j'ai archivés dans un coffre Amazon S3 Glacier. Comment exécuter cette requête Select à l'aide de l'interface de ligne de commande AWS (CLI AWS) ?

Résolution

Classe de stockage Amazon S3 Glacier

Suivez les étapes ci-dessous pour exécuter une requête Select, à l'aide de l'interface de ligne de commande AWS (CLI AWS), sur des objets stockés dans la classe de stockage Amazon S3 Glacier :

1.    Créez un fichier JSON à l'aide des paramètres de la commande de CLI AWS restore-object. Veillez à inclure les paramètres suivants :
Pour le paramètre Expression, saisissez la requête Select.
Pour le paramètre OutputLocation, saisissez l'emplacement S3 dans lequel vous souhaitez stocker les résultats de la requête.

Par exemple, le fichier JSON suivant exécute la requête SELECT* FROM objet. Il envoie ensuite les résultats de la requête à l'emplacement S3 awsexamplebucket/outputJob :

{
    "Type": "SELECT",
    "Tier": "Standard",
    "SelectParameters": {
        "InputSerialization": {
            "CSV": {
                "FileHeaderInfo": "USE"
            }
        },
        "ExpressionType": "SQL",
        "Expression": "SELECT * FROM object",
        "OutputSerialization": {
            "CSV": {}
        }
    },
    "OutputLocation": {
        "S3": {
            "BucketName": "awsexamplebucket",
            "Prefix": "outputJob",
            "StorageClass": "STANDARD"
        }
    }
}

Remarque : Cet exemple inclut uniquement les paramètres requis.

2.    Exécutez la commande restore-object et spécifiez le fichier JSON que vous avez créé en tant que valeur --restore-request :

$ aws s3api restore-object --bucket awsexamplebucket --key file.csv --restore-request file://restoreJob.json

3.    Une fois la commande exécutée, vous recevez l'emplacement S3 dans lequel sont stockés les résultats de la requête Select. Le résultat ressemble à ce qui suit :

{
    "RestoreOutputPath": "outputJob/example_iNHt-0sE2cqt8ZtwNdE1nHi7nKzRaIWLyzzcsW4QWIUaHduHVReDDdavy-aLfEdnD6ql3AR8s4f4oZzhdhBg/"
}

Pour plus d'informations sur les résultats de la requête, consultez la section Résultats de la requête Select.

Coffre Amazon S3 Glacier

Suivez les étapes ci-dessous pour exécuter une requête Select, à l'aide de l'interface de ligne de commande AWS (CLI AWS), sur des objets archivés dans un coffre Amazon S3 Glacier :

1.    Créez un fichier JSON à l’aide des paramètres de la commande de CLI AWS initiate-job. Veillez à inclure les paramètres suivants :
Pour le paramètre Expression, saisissez la requête Select.
Pour le paramètre OutputLocation, saisissez l'emplacement S3 dans lequel vous souhaitez stocker les résultats de la requête.

Par exemple, le fichier JSON suivant exécute la requête SELECT* FROM archive. Il envoie ensuite les résultats de la requête à l'emplacement S3 awsexamplebucket/outputJobGlacier :

{
    "Type": "SELECT",
    "ArchiveId": "example_QpOx5CphSp5VY8Jbhkmd1-TyIF5KFr_VYDAyyqb0n5r5i5_CBVKY0F0OfwzbsWrewjIJ1Kd1d9Tgp97C$",
    "Tier": "Standard",
    "SelectParameters": {
        "InputSerialization": {
            "csv": {
                "FileHeaderInfo": "USE"
            }
        },
        "ExpressionType": "SQL",
        "Expression": "SELECT * FROM archive",
        "OutputSerialization": {
            "csv": {}
        }
    },
    "OutputLocation": {
        "S3": {
            "BucketName": "awsexamplebucket",
            "Prefix": "outputJobGlacier",
            "StorageClass": "STANDARD"
        }
    }
}

Remarque : Cet exemple inclut uniquement les paramètres requis.

2.    Exécutez la commande initiate-job et spécifiez le fichier JSON que vous avez créé en tant que valeur --job-parameters :

$ aws glacier initiate-job --account-id 111122223333 --vault-name awsexamplevault --job-parameters file://restoreJobGlacier.json

3.    Une fois la commande exécutée, vous recevez une réponse qui inclut l'emplacement S3 dans lequel sont stockés les résultats de la requête (jobOutputPath). Le résultat ressemble à ce qui suit :

{
    "jobOutputPath": "outputJobGlacier/example_N4Zpv9bExi9TCv1gSSwWUhsK-371E9KBCFlAEMSnD2Gzq4GXhaT4aK7Gj8_s-jAn4aAvMNgUEbhTlxUfNYT9/",
    "location": "/111122223333/vaults/awsexamplevault/jobs/example_N4Zpv9bExi9TCv1gSSwWUhsK-371E9KBCFlAEMSnD2Gzq4GXhaT4aK7Gj8_s-jAn4aAvMNgUEbhTlxUfNYT9",
    "jobId": "example_N4Zpv9bExi9TCv1gSSwWUhsK-371E9KBCFlAEMSnD2Gzq4GXhaT4aK7Gj8_s-jAn4aAvMNgUEbhTlxUfNYT9"
}

Pour plus d'informations sur les résultats de la requête, consultez la section Résultats de la requête Glacier Select


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?