

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

# 使用單欄式儲存格式
<a name="columnar-storage"></a>

[Apache Parquet](https://parquet.apache.org) 和 [ORC](https://orc.apache.org/) 是經過最佳化的單欄式儲存格式，可快速擷取資料並用於 AWS 分析應用程式。

單欄式儲存格式具有以下特點，使其適用於 Athena：
+ *針對資料欄資料類型選擇壓縮演算法來壓縮欄*，可以節省 Amazon S3 中的儲存空間，並在查詢處理期間降低磁碟空間和輸入/輸出。
+ Parquet 和 ORC 中的*述詞下推*，可讓 Athena 查詢僅擷取需要的區塊，進而提高查詢效能。當 Athena 查詢從您的資料中取得特定資料欄值時，它會使用資料區塊述詞 (例如上限/下限值) 的統計資料，判斷要讀取或略過該區塊。
+ Parquet 和 ORC 中的*資料分割*，可讓 Athena 將資料的讀取分割給多個讀取器，在其查詢處理期間增加平行處理。

若要將您現有的原始資料從其他儲存格式轉換為 Parquet 或 ORC，您可以在 Athena 中執行 [CREATE TABLE AS SELECT (CTAS)](ctas.md) 查詢，並將資料儲存格式指定為 Parquet 或 ORC，或使用 AWS Glue 爬蟲程式。

## 在 Parquet 與 ORC 之間進行選擇
<a name="columnar-storage-choosing"></a>

ORC (優化列單欄式) 和 Parquet 之間的選擇取決於您的特定使用需求。

Apache Parquet 提供高效的資料壓縮和編碼機制，非常適合用於執行複雜查詢和處理大量資料。為與 [Apache Arrow](https://arrow.apache.org/) 搭配使用，Parquet 進行了優化，因此如果您使用與 Arrow 相關的工具，Parquet 可能比較有利。

ORC 可以很有效率地存放 Hive 資料。ORC 檔案通常比 Parquet 檔案要小，因此 ORC 索引可以加快查詢速度。此外，ORC 支援複雜類型，例如結構、映射和清單。

在 Parquet 或 ORC 間選擇時，請考慮以下因素：

**查詢效能** – 由於 Parquet 能夠支援更廣泛的查詢類型，因此，如果您打算執行複雜的查詢，則 Parquet 可能是更好的選擇。

**複雜的資料類型** – 如果您使用的是複雜的資料類型，那麼 ORC 可能是更好的選擇，因為它能支援更廣泛的複雜資料類型。

**檔案大小** – 如果需要考慮磁碟空間，ORC 通常可產生較小的檔案，進而降低儲存成本。

**壓縮** – Parquet 和 ORC 均可提供良好的壓縮，但最適合您的最佳格式主要取決於您的特定使用案例。

**演進** – Parquet 和 ORC 均可支援支持結構描述變化，這意味著您可以隨時間新增、刪除或修改資料欄。

對於大數據應用程式來說，Parquet 和 ORC 都是不錯的選擇，但在選擇之前，請考慮您的案例需求。您可能希望對資料和查詢執行基準測試，以查看哪種格式更適合您的使用案例。

## 轉換為單欄式格式
<a name="convert-to-columnar"></a>

將 JSON 或 CSV 等來源資料輕鬆轉換為單欄式格式的選項，包括使用 [CREATE TABLE AS](ctas.md) 查詢或執行 AWS Glue中的任務。
+ 使用 `CREATE TABLE AS` (CTAS) 查詢，只需一個步驟即可將資料轉換為 Parquet 或 ORC。如需範例，請參閱 [CTAS 查詢的範例](ctas-examples.md) 頁面上的[範例：將查詢結果寫為不同格式](https://docs.aws.amazon.com/athena/latest/ug/ctas-examples.html#ctas-example-format)。
+ 如需有關使用 Athena for ETL 將資料從 CSV 轉換為 Parquet 的詳細資訊，請參閱 [使用 CTAS 和 INSERT INTO 以進行 ETL 和資料分析](ctas-insert-into-etl.md)。
+ 如需有關執行 AWS Glue 任務以將 CSV 資料轉換為 Parquet 的資訊，請參閱 AWS 大數據部落格文章中的「將資料從 CSV 轉換為 Parquet 格式」一節[使用 AWS Glue 和 Amazon S3 建置資料湖基礎](https://aws.amazon.com/blogs/big-data/build-a-data-lake-foundation-with-aws-glue-and-amazon-s3/)。 AWS Glue 支援使用相同的技術將 CSV 資料轉換為 ORC，或 JSON 資料轉換為 Parquet 或 ORC。