

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

# 教學課程：新增 AWS Glue 爬蟲程式
<a name="tutorial-add-crawler"></a>

對於這個 AWS Glue 案例，您需要分析主要航空公司的抵達資料，以計算出發機場每月的受歡迎程度。您有以 CSV 格式存放在 Amazon S3 中的 2016 年航班資料。在轉換和分析資料之前，您先將其中繼資料編目至 AWS Glue Data Catalog。

在本教學課程中，讓我們在 Amazon S3 中新增可推斷這些航班記錄中繼資料的爬蟲程式，並在 Data Catalog 中建立資料表。

**Topics**
+ [先決條件](#tutorial-add-crawler-prerequisites)
+ [步驟 1：新增爬蟲程式](#tutorial-add-crawler-step1)
+ [步驟 2：執行爬蟲程式](#tutorial-add-crawler-step2)
+ [步驟 3：檢視 AWS Glue Data Catalog 物件](#tutorial-add-crawler-step3)

## 先決條件
<a name="tutorial-add-crawler-prerequisites"></a>

本教學假設您擁有 AWS 帳戶和 的存取權AWS Glue。

## 步驟 1：新增爬蟲程式
<a name="tutorial-add-crawler-step1"></a>

使用這些步驟來設定和執行爬蟲程式，該爬蟲程式會從存放在 Amazon S3 的 CSV 檔案中擷取中繼資料。

**建立讀取存放在 Amazon S3 上之檔案的爬蟲程式**

1. 在 AWS Glue 服務主控台的左側選單上，選擇**爬蟲程式**。

1. 在爬蟲程式頁面上，選擇**建立爬蟲程式**。這會啟動一系列頁面，提示您輸入爬蟲程式詳細資訊。  
![螢幕擷取畫面會顯示爬蟲程式頁面。您可以在此建立爬蟲程式，或編輯、複製、刪除和檢視現有的爬蟲程式。](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/crawlers-create_crawler.png)

1. 在爬蟲程式名稱欄位中，輸入 **Flights Data Crawler**，然後選擇 **Next (下一步)**。

   爬蟲程式會呼叫分類器，以推斷資料的結構描述。本教學課程預設使用 CSV 的內建分類器。

1. 對於爬蟲程式來源類型，選擇 **Data stores (資料存放區)**，然後選擇 **Next (下一步)**。

1. 現在讓我們將爬蟲程式指向您的資料。在 **Add a data store (新增資料存放區)** 頁面上，選擇 Amazon S3 資料存放區。本教學課程不使用連線，因此請將 **Connection (連線)** 欄位保留空白 (如果可見)。

   對於 **Crawl data in** (抓取資料位置) 選項，選擇 **Specified path in another account** (指定其他帳戶內的路徑)。然後，對於 **Include path (包含路徑)**，輸入爬蟲程式可以找到航班資料的路徑，也就是 **s3://crawler-public-us-east-1/flight/2016/csv**。輸入路徑後，此欄位的標題會變更為 **Include path (包含路徑)**。選擇**下一步**。

1. 您可以使用單一爬蟲程式來編目多個資料存放區。但是，在本教學課程中，我們只使用一個資料存放區，因此選擇 **No (否)**，然後選擇 **Next (下一步)**。

1. 爬蟲程式需要許可才能存取資料存放區，並在 AWS Glue Data Catalog 中建立物件。若要設定這些許可，請選擇 **Create an IAM role (建立 IAM 角色)**。IAM 角色名稱的開頭為 `AWSGlueServiceRole-`，然後在欄位中輸入角色名稱的最後一部分。輸入 **CrawlerTutorial**，然後選擇 **Next (下一步)**。
**注意**  
若要建立 IAM 角色，您的 AWS 使用者必須擁有 `CreateRole`、`CreatePolicy` 以及 `AttachRolePolicy` 許可。

   精靈會建立名為 的 IAM 角色`AWSGlueServiceRole-CrawlerTutorial`，將 AWS 受管政策連接至`AWSGlueServiceRole`此角色，並新增允許讀取存取 Amazon S3 位置 的內嵌政策`s3://crawler-public-us-east-1/flight/2016/csv`。

1. 建立爬蟲程式的排程。對於 **Frequency (頻率)** 選擇 **Run on demand (隨需執行)**，然後選擇 **Next (下一步)**。

1. 爬蟲程式會在您的 Data Catalog 中建立資料表。資料表包含在 Data Catalog 的資料庫中。首先，選擇 **Add database (新增資料庫)** 建立資料庫。在彈出式視窗中，輸入 **test-flights-db** 做為資料庫名稱，然後選擇 **Create (建立)**。

   接下來，針對 **Prefix added to tables (新增至資料表的字首)** 輸入 **flights**。針對其餘的選項，使用預設值並選擇 **Next (下一步)**。

1. 驗證您在 **Add crawler (新增爬蟲程式)** 精靈中做出的選擇。如果您看到任何錯誤，您可以選擇 **Back (上一步)** 返回上一頁並進行變更。

   檢閱完資訊後，請選擇 **Finish (完成)** 建立爬蟲程式。

## 步驟 2：執行爬蟲程式
<a name="tutorial-add-crawler-step2"></a>

建立爬蟲程式之後，精靈會將您傳送至爬蟲程式檢視頁面。因為您建立具有隨需排程的爬蟲程式，所以您可以選擇執行爬蟲程式。

**執行爬蟲程式**

1. 此頁面頂端附近的橫幅可讓您知道已建立爬蟲程式，並詢問您是否要立即執行它。選擇 **Run it now? (現在執行？)** 執行爬蟲程式。

   橫幅會變更為針對您的爬蟲程式顯示「正在嘗試執行」和「正在執行」訊息。爬蟲程式開始執行後，橫幅就會消失，而且爬蟲程式顯示會更新，以顯示爬蟲程式的 Starting (啟動中) 狀態。一分鐘後，您可以按一下 [重新整理] 圖示來更新資料表中顯示之爬蟲程式的狀態。

1. 爬蟲程式完成時，會出現一個新的橫幅，說明爬蟲程式所做的變更。您可以選擇 **test-flights-db** 連結以檢視 Data Catalog 物件。

## 步驟 3：檢視 AWS Glue Data Catalog 物件
<a name="tutorial-add-crawler-step3"></a>

爬蟲程式會讀取來源位置的資料，並在 Data Catalog 中建立資料表。資料表是呈現您資料的中繼資料定義，包括其結構描述。 Data Catalog 中的資料表不包含資料。相反地，您可以使用這些資料表做為任務定義中的來源或目標。

**檢視爬蟲程式建立的 Data Catalog 物件**

1. 在左側導覽的 **Data catalog ( Data Catalog )** 下，選擇 **Databases (資料庫)**。在這裡，您可以查看爬蟲程式所建立的 `flights-db` 資料庫。

1. 在左側導覽中的 **Data catalog ( Data Catalog )** 及 **Databases (資料庫)** 下方，選擇 **Tables (資料表)**。在這裡，您可以檢視爬蟲程式所建立的 `flightscsv` 資料表。如果您選擇資料表名稱，則可以檢視資料表設定、參數和屬性。在此檢視中向下捲動，您可以檢視結構描述，也就是資料表的欄和資料類型的相關資訊。

1. 如果選擇資料表檢視頁面上的 **View partitions (檢視分割區)**，您可以看到為資料建立的分割區。第一欄是資料分割區索引鍵。