

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 查詢文件中繼資料
<a name="working.metadata"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

`INSERT` 陳述式會建立版本編號為零的文件初始修訂。為了唯一識別每個文件，Amazon QLDB 會指派*文件 ID* 做為中繼資料的一部分。

除了文件 ID 和版本編號之外，QLDB 還會將每個文件的其他系統產生的中繼資料存放在資料表中。此中繼資料包括交易資訊、日誌屬性和文件的雜湊值。

所有系統指派IDs 都是通用的唯一識別符 (UUID)，每個識別符都以 Base62-encoded字串表示。如需詳細資訊，請參閱[Amazon QLDB 中的唯一 IDs](working.unique-id.md)。

**Topics**
+ [遞交檢視](#working.metadata.committed)
+ [加入遞交和使用者檢視](#working.metadata.committed-joins)

## 遞交檢視
<a name="working.metadata.committed"></a>

您可以透過查詢*遞交的檢視*來存取文件中繼資料。此檢視會從系統定義的資料表傳回直接對應至使用者資料表的文件。它包含資料和系統產生的中繼資料的最新遞交、未刪除的修訂。若要查詢此檢視，請將 字首新增至查詢中的`_ql_committed_`資料表名稱。（字首`_ql_`保留在 QLDB 中供系統物件使用。)

```
SELECT * FROM _ql_committed_VehicleRegistration AS r
WHERE r.data.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')
```

使用先前插入 的資料[使用索引建立資料表並插入文件](working.create.md)，此查詢的輸出會顯示每個未刪除文件最新修訂的系統內容。系統文件的中繼資料巢狀在 `metadata` 欄位中，而您的使用者資料巢狀在 `data`欄位中。

```
{
    blockAddress:{
        strandId:"JdxjkR9bSYB5jMHWcI464T",
        sequenceNo:14
    },
    hash:{{wCsmM6qD4STxz0WYmE+47nZvWtcCz9D6zNtCiM5GoWg=}},
    data:{
        VIN: "1N4AL11D75C109151",
        LicensePlateNumber: "LEWISR261LL",
        State: "WA",
        City: "Seattle",
        PendingPenaltyTicketAmount: 90.25,
        ValidFromDate: 2017-08-21T,
        ValidToDate: 2020-05-11T,
        Owners: {
            PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" },
            SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }]
        }
    },
    metadata:{
        id:"3Qv67yjXEwB9SjmvkuG6Cp",
        version:0,
        txTime:2019-06-05T20:53:321d-3Z,
        txId:"HgXAkLjAtV0HQ4lNYdzX60"
    }
},
{
    blockAddress:{
        strandId:"JdxjkR9bSYB5jMHWcI464T",
        sequenceNo:14
    },
    hash:{{wPuwH60TtcCvg/23BFp+redRXuCALkbDihkEvCX22Jk=}},
    data:{
        VIN: "KM8SRDHF6EU074761",
        LicensePlateNumber: "CA762X",
        State: "WA",
        City: "Kent",
        PendingPenaltyTicketAmount: 130.75,
        ValidFromDate: 2017-09-14T,
        ValidToDate: 2020-06-25T,
        Owners: {
            PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" },
            SecondaryOwners: []
        }
    },
    metadata:{
        id:"JOzfB3lWqGU727mpPeWyxg",
        version:0,
        txTime:2019-06-05T20:53:321d-3Z,
        txId:"HgXAkLjAtV0HQ4lNYdzX60"
    }
}
```

**遞交的檢視欄位**
+ `blockAddress` – 您分類帳日誌中文件修訂遞交的區塊位置。可用於密碼編譯驗證的地址有兩個欄位。
  + `strandId` – 包含 區塊之日誌鏈的唯一 ID。
  + `sequenceNo` – 索引號碼，指定 鏈中區塊的位置。
**注意**  
此範例中的兩份文件都具有與`blockAddress`相同 相同的 `sequenceNo`。由於這些文件是插入單一交易中 （在此案例中是單一陳述式中），因此它們被遞交至相同的區塊。
+ `hash` – 唯一代表文件修訂的 SHA-256 Ion 雜湊值。雜湊涵蓋修訂版 `data` 和 `metadata` 欄位，可用於[密碼編譯驗證](verification.md)。
+ `data` – 文件的使用者資料屬性。

  如果您修訂修訂，則此`data`結構會替換為`dataHash`欄位，其值為已移除`data`結構的 Ion 雜湊。
+ `metadata` – 文件的中繼資料屬性。
  + `id` – 文件的系統指派唯一 ID。
  + `version` – 文件的版本編號。這是以零為基礎的整數，會隨著每個文件修訂而遞增。
  + `txTime` – 文件修訂遞交至日誌時的時間戳記。
  + `txId` – 遞交文件修訂之交易的唯一 ID。

## 加入遞交和使用者檢視
<a name="working.metadata.committed-joins"></a>

您可以在遞交檢視中，使用使用者檢視中的資料表撰寫聯結資料表的查詢。例如，您可能想要將`id`一個資料表的文件與另一個資料表的使用者定義欄位聯結。

下列查詢會使用後者的承諾檢視，分別在 `PersonId`和 文件`id`欄位`Person`上聯結兩個名為 `DriversLicense`和 的資料表。

```
SELECT * FROM DriversLicense AS d INNER JOIN _ql_committed_Person AS p
ON d.PersonId = p.metadata.id
WHERE p.metadata.id = '1CWScY2qHYI9G88C2SjvtH'
```

若要了解如何在預設使用者檢視中查詢文件 ID 欄位，請繼續 [使用 BY 子句查詢文件 ID](working.metadata.by-clause.md)。