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 ?

Dernière mise à jour : 05/01/2021

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 à l'aide de l'interface de ligne de commande (CLI) AWS ?

Solution

Classe de stockage Amazon S3 Glacier

Procédez comme suit pour exécuter une requête Select à l'aide de l'interface de ligne de commande (CLI) AWS, sur des objets stockés dans la classe de stockage Amazon S3 Glacier :

Remarque : si vous recevez des erreurs lors de l'exécution des commandes CLI AWS, assurez-vous d'utiliser la version la plus récente de l'interface CLI AWS.

1.    Créez un fichier JSON en utilisant les paramètres de la commande d'interface de ligne de commande (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 docexamplebucket/outputJob :

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

Remarque : cet exemple contient uniquement les paramètres requis.

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

$ aws s3api restore-object --bucket docexamplebucket --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 est similaire à ce qui suit :

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

Pour plus d'informations sur la sortie de la requête, consultez Sortie de Select.

Coffre Amazon S3 Glacier

Procédez comme suit pour exécuter une requête Select, à l'aide de l'interface de ligne de commande (CLI) AWS sur des objets archivés dans un coffre Amazon S3 Glacier :

1.    Créez un fichier JSON en utilisant les paramètres de la commande d'interface de ligne de commande (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 docexamplebucket/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": "docexamplebucket",
            "Prefix": "outputJobGlacier",
            "StorageClass": "STANDARD"
        }
    }
}

Remarque : cet exemple contient uniquement les paramètres requis.

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

$ aws glacier initiate-job --account-id 111122223333 --vault-name docexamplevault --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 est similaire à ce qui suit :

{
    "jobOutputPath": "outputJobGlacier/example_N4Zpv9bExi9TCv1gSSwWUhsK-371E9KBCFlAEMSnD2Gzq4GXhaT4aK7Gj8_s-jAn4aAvMNgUEbhTlxUfNYT9/",
    "location": "/111122223333/vaults/docexamplevault/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 Sortie de Select.


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


Besoin d'aide pour une question technique ou de facturation ?