

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

# 將 Athena 連接至 Apache Hive 中繼存放區
<a name="connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore"></a>

若要將 Athena 連接到 Apache Hive 中繼存放區，您必須建立和設定 Lambda 函數。關於基本實作，您可以從 Athena 管理主控台開始執行所有必要的步驟。

**注意**  
下列程序要求您具有為 Lambda 函數建立自訂 IAM 角色的許可。如果您沒有建立自訂角色的許可，您可以使用 Athena [參考實作](connect-to-data-source-hive.md#connect-to-a-data-source-hive-features-reference-implementation)分別建立 Lambda 函數，然後使用 AWS Lambda 主控台為函數選擇現有的 IAM 角色。如需詳細資訊，請參閱[使用現有 IAM 執行角色將 Athena 連接到 Hive 中繼存放區](connect-data-source-hive-existing-iam-role.md)。

**若要將 Athena 連接到 Hive 中繼存放區**

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

1. 如果未顯示主控台的導覽窗格，請選擇左側的展開選單。  
![\[選擇展開選單。\]](http://docs.aws.amazon.com/zh_tw/athena/latest/ug/images/nav-pane-expansion.png)

1. 選擇**資料來源和目錄**。

1. 在主控台的右上角，選擇 **Create data source** (建立資料來源)。

1. 在 **Choose a data source** (選擇資料來源) 頁面上，針對 **Data source** (資料來源) 選擇 **S3 - Apache Hive metastore** (S3 - Apache Hive 中繼存放區)。

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

1. 在 **Data source details** (資料來源詳細資訊) 區段中，當您從 Athena 查詢資料來源，請於 **Data Source Name** (資料來源名稱) 輸入要在 SQL 陳述式中使用的名稱。名稱最多可包含 127 個字元，且在您的帳戶中必須是唯一的。建立後便無法變更。有效字元包括 a-z、A-Z、0-9、\$1 (底線)、@ (at 符號) 和 - (連字號)。Athena 已保留名稱 `awsdatacatalog`、`hive`、`jmx` 和 `system`，這些名稱不能用於資料來源名稱。

1. 對於 **Lambda 函數**，選擇**建立 Lambda 函數**，然後選擇**在 中建立新的 Lambda 函數 AWS Lambda**

   **AthenaHiveMetastoreFunction** 頁面會在 AWS Lambda 主控台中開啟。此頁面包含連接器的詳細資訊。  
![\[AWS Lambda 主控台中的 AthenaHiveMetastoreFunction 頁面。\]](http://docs.aws.amazon.com/zh_tw/athena/latest/ug/images/connect-to-data-source-hive-4.png)

1. 在 **Application settings** (應用程式設定) 下，輸入您的 Lambda 函數的參數。
   + **LambdaFuncName** – 提供函數名稱。例如，**myHiveMetastore**。
   + **SpillLocation** – 指定此帳戶中的 Amazon S3 位置，如果 Lambda 函數回應大小超過 4 MB，此位置會保留溢出中繼資料。
   + **HMSUris** – 輸入在連接埠 9083 上使用 Thrift 通訊協定的 Hive 中繼存放區主機的 URI。使用語法 `thrift://<host_name>:9083`。
   + **LambdaMemory** – 指定介於 128 MB 到 3008 MB 之間的值。Lambda 函數分配到的 CPU 週期與您設定的記憶體數量成比例。預設值為 1024。
   + **LambdaTimeout** – 指定允許的 Lambda 叫用執行時間上限 (以秒為單位)，從 1 到 900 (900 秒為 15 分鐘)。預設值為 300 秒 (5 分鐘)。
   + **VPCSecurityGroupIds** – 為 Hive 中繼存放區輸入以逗號分隔的 VPC 安全群組 ID 清單。
   + **VPCSubnetIds** – 為 Hive 中繼存放區輸入以逗號分隔的 VPC 子網路 ID 清單。

1. 選擇 **I acknowledge that this app creates custom IAM roles** (我認可此應用程式建立自訂的 IAM 角色)，然後選擇 **Deploy** (部署)。  
![\[從 AWS Lambda 主控台部署 Lambda 函數應用程式。\]](http://docs.aws.amazon.com/zh_tw/athena/latest/ug/images/connect-to-data-source-hive-4a.png)

   部署完成時，您的函數會顯示在 Lambda 應用程式清單中。現在 Hive 中繼存放區函數已部署到您的帳戶，您可以設定 Athena 以使用它。

1. 返回 Athena 主控台的 **Enter data source details** (輸入資料來源) 頁面。

1. 在 **Lambda function** (Lambda 函數) 區段中，選擇 Lambda 函數搜尋方塊旁的重新整理圖示。重新整理可用函數的清單可以使您新建立的函數出現在清單中。

1. 選擇您剛才在 Lambda 主控台中建立的函數名稱。隨即顯示 Lambda 函數的 ARN。

1. (選用) 在 **Tags** (標籤) 中，新增要與此資料來源相關聯的鍵值對。如需標籤的詳細資訊，請參閱[標記 Athena 資源](tags.md)。

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

1. 在 **Review and create** (檢閱並建立) 頁面上，檢閱資料來源詳細資訊，然後選擇 **Create data source** (建立資料來源)。

1. 該頁面的 **Data source details** (資料來源詳細資訊) 區段顯示了有關新連接器的資訊。

   您現在可以使用您指定的 **Data source name** (資料來源名稱)，在 Athena 的 SQL 查詢中指定參考 Hive 中繼存放區。在 SQL 查詢中，使用下列範例中的語法，將 `hms-catalog-1` 取代為您先前指定的目錄名稱。

   ```
   SELECT * FROM hms-catalog-1.CustomerData.customers 
   ```

1. 如需有關查看、編輯或刪除您建立的資料來源的資訊，請參閱 [管理資料來源](data-sources-managing.md)。