

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

# 使用編目程式新增資料表
<a name="schema-crawlers"></a>

AWS Glue 爬蟲程式可協助探索資料集的結構描述，並將其註冊為 AWS Glue Data Catalog 中的資料表。爬蟲程式可逐一瀏覽您的資料，並判斷結構描述。此外，爬蟲程式可偵測和登錄分割區。如需詳細資訊，請參閱《AWS Glue 開發人員指南》**中的[定義爬蟲程式](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)。可從 Athena 查詢來自已成功編目的資料的資料表。

**注意**  
Athena 無法辨識您為 AWS Glue 爬蟲程式指定的[排除模式](https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude)。例如，如果您的 Simple Storage Service (Amazon S3) 儲存貯體同時包含 `.csv` 和 `.json` 檔案，並且您將 `.json` 檔案從爬蟲程式中排除，Athena 會查詢這兩個檔案群組。若要避免這種情況，請將您要排除的檔案放在不同的位置。

## 建立 AWS Glue 爬蟲程式
<a name="data-sources-glue-crawler-setup"></a>

您可以從 Athena 主控台開始建立爬蟲程式，然後以整合方式使用 AWS Glue 主控台。建立爬蟲程式時，需要在 Amazon S3 中指定要網路爬取的資料位置。

**從 Athena 主控台 AWS Glue 開始在 中建立爬蟲程式**

1. 前往 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 開啟 Athena 主控台。

1. 在查詢編輯器中，選擇位於**資料表和檢視**旁的**建立**，然後選擇 **AWS Glue 爬蟲程式**。

1. 在 **AWS Glue** 主控台的 **Add crawler (新增爬蟲程式)** 頁面上，依照步驟建立爬蟲程式。如需詳細資訊，請參閱本指南中的[使用 AWS Glue 爬蟲程式](#schema-crawlers)和《 *AWS Glue 開發人員指南*》中的[填入 AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/populate-catalog-methods.html) 。

**注意**  
Athena 無法辨識您為 AWS Glue 爬蟲程式指定的[排除模式](https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude)。例如，如果您的 Simple Storage Service (Amazon S3) 儲存貯體同時包含 `.csv` 和 `.json` 檔案，並且您將 `.json` 檔案從爬蟲程式中排除，Athena 會查詢這兩個檔案群組。若要避免這種情況，請將您要排除的檔案放在不同的位置。

在爬蟲程式之後， AWS Glue 爬蟲程式會自動指派特定資料表中繼資料，以協助使其與其他外部技術相容，例如 Apache Hive、Presto 和 Spark。有時爬蟲程式可能不正確地指派中繼資料屬性。使用 Athena 查詢資料表 AWS Glue 之前，手動更正 中的屬性。如需詳細資訊，請參閱《AWS Glue 開發人員指南》中的**[檢視與編輯資料表詳細資訊](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html#console-tables-details)。

AWS Glue 當 CSV 檔案的每個資料欄位有引號時， 可能會錯誤指派中繼資料，導致 `serializationLib` 屬性錯誤。如需詳細資訊，請參閱[處理以引號括住的 CSV 資料](schema-csv.md#schema-csv-quotes)。

# 對編目程式使用多個資料來源
<a name="schema-crawlers-data-sources"></a>

當 AWS Glue 爬蟲程式掃描 Amazon S3 並偵測多個目錄時，它會使用啟發式來判斷資料表的根目錄在目錄結構中的位置，以及哪些目錄是資料表的分割區。在某些情況下，在兩個或多個目錄偵測到類似的結構描述時，爬蟲程式可能會將它們視為分割區，而不是個別的資料表。協助爬蟲程式探索個別資料表的其中一種方法是，將每個資料表的根目錄新增為爬蟲程式的資料存放區。

Amazon S3 中的下列分割區為範例：

```
s3://amzn-s3-demo-bucket/folder1/table1/partition1/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition2/file.txt
s3://amzn-s3-demo-bucket/folder1/table1/partition3/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition4/file.txt
s3://amzn-s3-demo-bucket/folder1/table2/partition5/file.txt
```

如果 `table1`和 的結構描述`table2`類似，且單一資料來源在 `s3://amzn-s3-demo-bucket/folder1/`中設定為 AWS Glue，爬蟲程式可能會建立具有兩個分割區資料欄的單一資料表：一個包含 `table1`和 的分割區資料欄`table2`，以及第二個包含`partition1`透過 的分割區資料欄`partition5`。

若要讓 AWS Glue 爬蟲程式建立兩個不同的資料表，請將爬蟲程式設定為有兩個資料來源 `s3://amzn-s3-demo-bucket/folder1/table1/`和 `s3://amzn-s3-demo-bucket/folder1/table2`，如下列程序所示。

**若要將 S3 資料存放區新增至 中的現有爬蟲程式 AWS Glue**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) 開啟 AWS Glue 主控台。

1. 在導覽窗格中，選擇 **Crawlers** (爬蟲程式)。

1. 選擇您的爬蟲程式連結，然後選擇 **Edit** (編輯)。

1. 對於 **Step 2: Choose data sources and classifiers** (步驟 2：選擇資料來源和分類器)，選擇 **Edit** (編輯)。

1. 對於**資料來源和目錄**，選擇**新增資料來源**。

1. 在 **Add data source** (新增資料來源) 對話方塊中，用於**S3 path** (S3 路徑)，選擇 **Browse** (瀏覽)。

1. 選取您想要使用的儲存貯體，然後選擇 **Choose** (選擇)。

   您新增的資料來源會顯示在 **Data sources** (資料來源)的清單中。

1. 選擇**下一步**。

1. 在 **Configure Security Settings** (設定安全設定) 頁面上，建立或選擇爬蟲程式的 IAM 角色，然後選擇**Next (下一步)**。

1. 確定 S3 路徑結尾為尾端斜線，然後選擇 **Add an S3 data source** (新增 S3 資料來源)。

1. 在 **Set output and scheduling** (設定輸出與排程) 頁面上，針對 **Output configuration** (輸出組態)，選擇目標資料庫。

1. 選擇**下一步**。

1. 在 **Review** (檢閱和更新) 頁面上，檢閱您所做的選擇。若要編輯步驟，請選擇 **Edit** (編輯)。

1.  選擇**更新**。

# 排程爬蟲程式，讓 AWS Glue Data Catalog 和 Amazon S3 保持同步
<a name="schema-crawlers-schedule"></a>

AWS Glue 爬蟲程式可以設定為按排程或隨需執行。如需詳細資訊，請參閱《AWS Glue 開發人員指南》**中的[任務和爬蟲程式的時間排程](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html)。

如果您有資料在固定時間抵達分割的資料表，您可以設定 AWS Glue 爬蟲程式，以按排程執行，以偵測和更新資料表分割區。您不再需要花費大量時間和金錢執行 `MSCK REPAIR` 命令，也不需要再手動執行 `ALTER TABLE ADD PARTITION` 命令。如需詳細資訊，請參閱《AWS Glue 開發人員指南》**中的[資料表分割區](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html#tables-partition)。