

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Consultation de l'historique des révisions
<a name="working.history"></a>

**Important**  
Avis de fin de support : les clients existants pourront utiliser Amazon QLDB jusqu'à la fin du support le 31 juillet 2025. Pour plus de détails, consultez [Migrer un registre Amazon QLDB vers Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/).

Amazon QLDB stocke l'historique complet de chaque document dans un tableau. Vous pouvez voir les trois révisions du document d'immatriculation du véhicule que vous avez précédemment inséré, mis à jour et supprimé en [Mettre à jour et supprimer des documents](working.revisions.md) interrogeant la fonction d'historique intégrée.

**Topics**
+ [

## Fonction d'historique
](#working.history.function)
+ [

## Exemple de requête d'historique
](#working.history.example)

## Fonction d'historique
<a name="working.history.function"></a>

La fonction d'historique de QLDB est une extension partiQL qui renvoie les révisions depuis la vue définie par le système de votre table. Elle inclut donc à la fois vos données et les métadonnées associées dans le même schéma que la vue validée.

**Syntaxe**

```
SELECT * FROM history( table_name | 'table_id' [, `start-time` [, `end-time` ] ] ) AS h
[ WHERE h.metadata.id = 'id' ]
```Arguments

***table\$1name* \$1 '*table\$1id*'**  
Le nom ou l'ID de la table. Le nom d'une table est un identifiant PartiQL que vous pouvez indiquer par des guillemets doubles ou sans guillemets. Un identifiant de table est une chaîne littérale qui doit être placée entre guillemets simples. Pour en savoir plus sur l'utilisation du tableau IDs, voir[Consultation de l'historique des tables inactives](working.manage-tables.md#working.history.inactive-table).

**`*start-time*`, `*end-time*`**  
(Facultatif) Spécifie la plage de temps pendant laquelle les révisions étaient actives. *Ces paramètres ne spécifient pas la période pendant laquelle les révisions ont été validées dans le journal dans le cadre d'une transaction.*  
Les heures de début et de fin sont des littéraux d'horodatage ioniques qui peuvent être indiqués par des backticks (). ``...`` Pour en savoir plus, consultez [Interroger Ion avec PartiQL dans Amazon QLDB](ql-reference.query.md).  
Ces paramètres temporels se comportent comme suit :  
+ L'heure de *début et l'heure* *de fin* sont toutes deux incluses. Ils doivent être au format de date et d'heure [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) et en temps universel coordonné (UTC).
+ L'*heure* de début doit être inférieure ou égale à l'*heure de fin* et peut être une date arbitraire dans le passé.
+ L'*heure de fin* doit être inférieure ou égale à la date et à l'heure UTC actuelles.
+ Si vous spécifiez une *heure de début* mais pas une *heure de fin*, votre requête définit par défaut la date et l'heure actuelles pour l'*heure de fin*. Si vous ne spécifiez ni l'un ni l'autre, votre requête renvoie l'historique complet.

**'*id*'**  
(Facultatif) L'ID du document pour lequel vous souhaitez consulter l'historique des révisions, indiqué par des guillemets simples.

**Astuce**  
Il est recommandé de qualifier une requête d'historique à la fois par une plage de dates (heure de *début et heure* de *fin*) et par un identifiant de document (`metadata.id`). Dans QLDB, `SELECT` chaque requête est traitée dans le cadre d'une transaction et est soumise à un délai [d'](limits.md#limits.fixed)expiration de transaction.  
Les requêtes d'historique n'utilisent pas les index que vous créez sur une table. L'historique QLDB est indexé uniquement par identifiant de document, et vous ne pouvez pas créer d'index d'historique supplémentaires pour le moment. Les requêtes d'historique qui incluent une heure de début et une heure de fin bénéficient de la qualification par plage de dates.

## Exemple de requête d'historique
<a name="working.history.example"></a>

Pour consulter l'historique du document d'immatriculation du véhicule, utilisez celui `id` que vous avez précédemment enregistré[Mettre à jour et supprimer des documents](working.revisions.md). Par exemple, la requête d'historique suivante renvoie toutes les révisions de l'ID de document `ADR2Ll1fGsU4Jr4EqTdnQF` qui ont été actives entre `2019-06-05T00:00:00Z` et`2019-06-05T23:59:59Z`.

**Note**  
N'oubliez pas que les paramètres d'heure de début et de fin *ne spécifient pas* la plage de temps pendant laquelle les révisions ont été validées dans le journal dans le cadre d'une transaction. Par exemple, si une révision a été validée avant cette date de début `2019-06-05T00:00:00Z` et qu'elle est restée active après cette date de début, cet exemple de requête renverra cette révision dans les résultats.

Assurez-vous de remplacer l'`id`heure de début et l'heure de fin par vos propres valeurs, le cas échéant.

```
SELECT * FROM history(VehicleRegistration, `2019-06-05T00:00:00Z`, `2019-06-05T23:59:59Z`) AS h
WHERE h.metadata.id = 'ADR2Ll1fGsU4Jr4EqTdnQF' --replace with your id
```

Les résultats de votre requête doivent ressembler à ce qui suit.

```
{
    blockAddress:{
        strandId:"JdxjkR9bSYB5jMHWcI464T",
        sequenceNo:14
    },
    hash:{{B2wYwrHKOWsmIBmxUgPRrTx9lv36tMlod2xVvWNiTbo=}},
    data: {
        VIN: "1HVBBAANXWH544237",
        LicensePlateNumber: "LS477D",
        State: "WA",
        City: "Tacoma",
        PendingPenaltyTicketAmount: 42.20,
        ValidFromDate: 2011-10-26T,
        ValidToDate: 2023-09-25T,
        Owners: {
            PrimaryOwner: { PersonId: "KmA3XPKKFqYCP2zhR3d0Ho" },
            SecondaryOwners: []
        }
    },
    metadata:{
        id:"ADR2Ll1fGsU4Jr4EqTdnQF",
        version:0,
        txTime:2019-06-05T20:53:321d-3Z,
        txId:"HgXAkLjAtV0HQ4lNYdzX60"
    }
},
{
    blockAddress:{
        strandId:"JdxjkR9bSYB5jMHWcI464T",
        sequenceNo:17
    },
    hash:{{LGSFZ4iEYWZeMwmAqcxxNyT4wbCtuMOmFCj8pEd6Mp0=}},
    data: {
        VIN: "1HVBBAANXWH544237",
        LicensePlateNumber: "LS477D",
        State: "WA",
        PendingPenaltyTicketAmount: 42.20,
        ValidFromDate: 2011-10-26T,
        ValidToDate: 2023-09-25T,
        Owners: {
            PrimaryOwner: { PersonId: "KmA3XPKKFqYCP2zhR3d0Ho" },
            SecondaryOwners: []
        },
        City: "Bellevue"
    },
    metadata:{
        id:"ADR2Ll1fGsU4Jr4EqTdnQF",
        version:1,
        txTime:2019-06-05T21:01:442d-3Z,
        txId:"9cArhIQV5xf5Tf5vtsPwPq"
    }
},
{
    blockAddress:{
        strandId:"JdxjkR9bSYB5jMHWcI464T",
        sequenceNo:19
    },
    hash:{{7bm5DUwpqJFGrmZpb7h9wAxtvggYLPcXq+LAobi9fDg=}},
    metadata:{
        id:"ADR2Ll1fGsU4Jr4EqTdnQF",
        version:2,
        txTime:2019-06-05T21:03:76d-3Z,
        txId:"9GslbtDtpVHAgYghR5FXbZ"
    }
}
```

La sortie inclut des attributs de métadonnées qui fournissent des détails sur le moment où chaque élément a été modifié et par quelle transaction. À partir de ces données, vous pouvez voir ce qui suit :
+ Le document est identifié de manière unique par son assigné par le système `id` :. `ADR2Ll1fGsU4Jr4EqTdnQF` Il s'agit d'un UUID représenté dans une chaîne codée en Base62.
+ Une `INSERT` instruction crée la révision initiale d'un document (version`0`).
+ Chaque mise à jour suivante crée une nouvelle révision avec le même document `id` et un numéro de version incrémenté.
+ Le `txId` champ indique la transaction qui a validé chaque révision et `txTime` indique quand chacune a été validée.
+ Une `DELETE` instruction crée une nouvelle mais dernière révision d'un document. Cette révision finale contient uniquement des métadonnées.

Pour savoir comment supprimer définitivement une révision, passez à[Rédaction de révisions de documents](working.redaction.md).