選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 Amazon S3 Select 就地查詢資料

焦點模式
使用 Amazon S3 Select 就地查詢資料 - Amazon Simple Storage Service

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

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

重要

Amazon S3 Select 不再提供給新客戶。Amazon S3 Select 的現有客戶可以繼續照常使用此功能。進一步了解

利用 Amazon S3 Select,您可以使用結構式查詢語言 (SQL) 陳述式篩選與擷取 Amazon S3 物件內容,取得您只需要的資料子集。藉由使用 Amazon S3 Select 篩選資料,您可以降低 Amazon S3 的傳輸量,減少成本和擷取資料的延遲。

Amazon S3 Select 僅允許您一次查詢一個物件。適用於以 CSV、JSON 或 Apache Parquet 格式儲存的物件。也適用於使用 GZIP 或 BZIP2 壓縮的物件 (僅針對 CSV 和 JSON 物件),以及伺服器端加密物件。您也可以指定結果格式,CSV 或 JSON,決定您要如何分隔記錄結果。

您在要求中,傳遞 SQL 運算式給 Amazon S3。Amazon S3 Select 支援 SQL 的子集。關於由 Amazon S3 Select 所支援的 SQL 元素之詳細資訊,請參閱 適用於 Amazon S3 Select 的 SQL 參考

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、SelectObjectContentREST API 操作或 AWS SDKs來執行 SQL 查詢。

注意

Amazon S3 主控台限制傳回資料檔流量為 40 MB。若要擷取更多資料,請使用 AWS CLI 或 API。

需求與限制

以下是使用 Amazon S3 Select 的需求:

  • 您必須擁有您正在查詢物件的 s3:GetObject 許可。

  • 如果要查詢的物件,使用客戶提供的加密金鑰 (SSE-C) 進行加密,您需使用 https,也必須在請求中提供加密金鑰。

以下是使用 Amazon S3 Select 時套用的限制:

  • S3 Select 在一個請求中只能查詢一個物件。

  • SQL 運算式字串的長度上限為 256 KB。

  • 輸入或結果記錄的長度上限為 1 MB。

  • Amazon S3 Select 只可使用 JSON 輸出格式發送巢狀資料。

  • 您無法查詢儲存在 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive 或低冗餘儲存 (RRS) 儲存類別中的物件。您也無法查詢儲存在 S3 Intelligent-Tiering Archive Access 層或 S3 Intelligent-Tiering Deep Archive Access 層的物件。如需儲存體方案的詳細資訊,請參閱「了解和管理 Amazon S3 儲存類別」。

搭配 Parquet 物件使用 Amazon S3 Select 時,會有額外的限制:

  • Amazon S3 Select 只支援使用 GZIP 或 Snappy 的單欄式壓縮。Amazon S3 Select 不支援 Parquet 物件的全物件壓縮。

  • Amazon S3 Select 不支援 Parquet 輸出。您必須將輸出格式指定為 CSV 或 JSON。

  • 未壓縮的列群組大小上限為 512 MB。

  • 您必須使用物件結構描述中指定的資料類型。

  • 選取重複的欄位只會傳回最後一個值。

建構與要求

當您建構一項請求時,您需提供使用 InputSerialization 物件查詢的物件的詳細資訊。您提供使用 OutputSerialization 物件傳回結果的詳細資訊。也還包況括使用 Amazon S3 的 SQL 運算式,篩選要求。

如需建構 Amazon S3 Select 請求的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的 SelectObjectContent。您也可以在以下章節中,看到其中一則 SDK 程式碼範例:

使用掃描範圍的要求

Amazon S3 Select 可讓您以指定要查詢的位元範圍方式掃描一個物件的子集。此功能可讓您透過將一系列非重疊掃描範圍的工作分割成個別 Amazon S3 Select 要求的方式,平行掃描整個物件。

掃描範圍不需要與記錄界線對齊。Amazon S3 Select 掃描範圍要求將在指定的位元範圍中執行。記錄如果在指定的掃描範圍中開始,但超出掃描範圍,則會由查詢處理。例如:以下內容顯示了一個 Amazon S3 物件,其中包含以行分隔的 CSV 格式的一系列記錄:

A,B C,D D,E E,F G,H I,J

假設您使用 Amazon S3 Select ScanRange 參數,並以 (位元) 1 開始,然後以 (位元) 4 結束。因此,掃描範圍會從「,」開始,然後掃描至從記錄結尾 C 為止。您的掃描範圍請求將返回結果 C, D,因為這是記錄的結尾。

Amazon S3 Select 掃描範圍請求支援 Parquet、CSV (不含引號分隔符號) 或 JSON 物件 (僅 LINES 模式)。CSV 和 JSON 物件必須為未壓縮。如為行式 CSV 和 JSON 物件,當掃描範圍指定為 Amazon S3 Select 要求的一部分時,所有在掃描範圍內開始的記錄都會進行處理。如為 Parquet 物件,所有在請求的掃描範圍內開始的列群組都會進行處理。

Amazon S3 Select 掃描範圍請求可與 AWS CLI、Amazon S3 API 和 AWS SDKs 搭配使用。您可以在此功能的 Amazon S3 Select 要求中使用 ScanRange 參數。如需詳細資訊,請參閱 Amazon Simple Storage Service API 參考中的 SelectObjectContent

錯誤

當 Amazon S3 Select 嘗試執行查詢且遇到問題時,會傳回錯誤代碼及其相關訊息。如需錯誤代碼和說明清單,請參閱 Amazon Simple Storage Service API 參考中,錯誤回應頁面的 SELECT 物件內容錯誤代碼清單一節。

如需 Amazon S3 Select 的詳細資訊,請參閱下方主題。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。