本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
處理 HiveQL 陳述式
Hive 是在 Hadoop 上執行的應用程式,Hadoop 是一種批次導向的架構,可用於執行 MapReduce 任務。當您發出 HiveQL 陳述式時,Hive 會判斷是否可以立即傳回結果,或是否必須提交 MapReduce 任務。
例如,考量 ddb_features 資料表 (從 教學課程:使用 Amazon DynamoDB 和 Apache Hive)。下列 Hive 查詢會列印州縮寫和各州境內山峰的數量:
SELECT state_alpha, count(*) FROM ddb_features WHERE feature_class = 'Summit' GROUP BY state_alpha;
Hive 不會立即返回結果。相反地,它會提交由 Hadoop 架構處理 MapReduce 的任務。Hive 將等待任務完成,然後才會顯示查詢結果:
AK 2 AL 2 AR 2 AZ 3 CA 7 CO 2 CT 2 ID 1 KS 1 ME 2 MI 1 MT 3 NC 1 NE 1 NM 1 NY 2 OR 5 PA 1 TN 1 TX 1 UT 4 VA 1 VT 2 WA 2 WY 3 Time taken: 8.753 seconds, Fetched: 25 row(s)
監控和取消任務
當 Hive 啟動 Hadoop 任務時,它會列印該任務的輸出。任務完成狀態隨著任務的進行而更新。在某些情況下,狀態可能會長時間無法進行更新。(在查詢具有較低佈建讀取容量設定的大型 DynamoDB 資料表時,可能會發生這種情況。)
如需在完成之前取消任務,您可以在任何時候輸入 Ctrl+C
。