hive 临时表 with_Kettle(PDI)转换中输入表输入详解
概述
Table input(表輸入)此步驟使用SQL語句從連接的數(shù)據(jù)庫中讀取信息。通過單擊獲取SQL查詢語句按鈕,可以自動生成基本SQL語句。
選項
Table input(表輸入)步驟有以下選項:
Step name(步驟名稱):在畫布上指定Table input(表輸入)步驟的唯一名稱。您可以自定義名稱或?qū)⑵浔A魹槟J(rèn)名稱。
Connection(數(shù)據(jù)庫連接):使用列表選擇現(xiàn)有數(shù)據(jù)庫連接的名稱。根據(jù)所訪問的數(shù)據(jù)庫選擇連接。如果您在AEL上通過Spark使用以下數(shù)據(jù)庫類型,請選擇以下數(shù)據(jù)庫類型之一:Cloudera Impala:選擇是否使用Impala數(shù)據(jù)庫;Hadoop Hive 2/3:選擇是在安全HDP集群上使用Hive中的小型非托管表,還是在Amazon EMR集群上使用Hive表;Hive Warehouse Connector:選擇是在Hive中使用大型的非托管表,還是在安全HDP集群上使用托管的Hive表。對于所有其他連接,請根據(jù)關(guān)系數(shù)據(jù)庫類型選擇連接。如果您沒有現(xiàn)有的連接,請單擊新建或Wizard。如果需要修改現(xiàn)有的連接,請單擊編輯。
SQL:指定一條SQL語句從連接的數(shù)據(jù)庫讀取信息。您還可以單擊獲取SQL查詢語句按鈕來瀏覽表并自動生成一個基本的select語句。
Store column info in step meta:選擇這個選項可以使用存儲在KTR中的緩存元數(shù)據(jù),而無需建立數(shù)據(jù)庫連接來查詢表。注意:如果您使用Spark作為您的處理引擎,請必須選擇此選項。
Enable lazy conversion(允許簡易轉(zhuǎn)換):選擇此選項以啟用簡易轉(zhuǎn)換算法。如果選擇簡易轉(zhuǎn)換,則盡可能避免不必要的數(shù)據(jù)類型轉(zhuǎn)換,這可以顯著提高性能。
Replace variables in script?(替換SQL語句里的變量):選擇此選項以替換腳本中的變量。該特性提供了使用或不使用變量替換的測試功能。
Insert data from step(從步驟插入數(shù)據(jù)):明確PDI可以獲得信息的輸入步驟名稱。然后可以將該信息插入到SQL語句中。PDI插入信息的定位器用問號表示:?。
Execute for each row?(執(zhí)行每一行?):選擇此選項為每個單獨(dú)的行執(zhí)行查詢。
Limit size(記錄數(shù)量限制):指定要從數(shù)據(jù)庫中讀取的行數(shù)。值為0表示讀取所有行。
Preview(預(yù)覽):單擊預(yù)覽打開一個新窗口,并查看由臨時轉(zhuǎn)換派生的執(zhí)行日志,該臨時轉(zhuǎn)換有兩個步驟:表輸入步驟和空操作 (什么也不做)步驟。要查看日志,在打開的預(yù)覽窗口中單擊Logs。
示例
示例采用mysql數(shù)據(jù)庫作為示例,首先下載mysql驅(qū)動https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.47,然后放在在文件夾data-integrationlib下。然后重啟Spoon。
雙擊輸入中的表輸入,添加一個表輸入。
表輸入
然后雙擊添加的步驟進(jìn)行編輯。
編輯表輸入
然后在數(shù)據(jù)庫鏈接后面點(diǎn)擊新建,選項mysql輸入相關(guān)信息。
配置數(shù)據(jù)鏈接
然后點(diǎn)擊測試,對數(shù)據(jù)庫進(jìn)行連接測試。如果連接成功,則會出現(xiàn)如下提示。
鏈接成功提示
最后點(diǎn)擊確定,可以看到數(shù)據(jù)庫連接設(shè)置了剛創(chuàng)建的名稱demo。
設(shè)置數(shù)據(jù)庫連接
然后點(diǎn)擊“獲取SQL查詢語句”,然后選擇對應(yīng)的表。
選擇表
獲取的sql語句
然后點(diǎn)擊預(yù)覽,預(yù)覽選擇表的數(shù)據(jù)列表。
預(yù)覽數(shù)據(jù)
AEL注意事項
在使用帶有Adaptive Execution Layer的表輸入步驟時,請考慮Hive和Impala數(shù)據(jù)庫連接的以下因素,這些因素可能會影響性能和結(jié)果。
- 不支持步驟中的以下選項:
- 不支持結(jié)構(gòu)、數(shù)組和用戶定義的數(shù)據(jù)類型。
- 由于CDH 6.x中Apache Spark支持的CD的限制, AEL不支持Hive或Impala的YARN模式。如果您想了解具體信息,請參閱Cloudera文檔(https://docs.cloudera.com/):
- 您可以使用Hortonworks以O(shè)RC格式訪問Hive托管表,如在Hortonworks集群上為Hive Warehouse連接器配置AEL守護(hù)進(jìn)程中所述(https://help.pentaho.com/Documentation/9.1/Setup/Set_up_the_Adaptive_Execution_Layer_(AEL)#r_pentaho_configure_the_ael_daemon_for_hive_warehouse_connector_on_hdp_ael_setup_specific_to_hive)。
- 您可以對Hive中的受管表使用AEL來執(zhí)行聯(lián)結(jié)表的輸入到表的輸出轉(zhuǎn)換步驟。但是,您必須遵循特定的工作流來進(jìn)行正確的數(shù)據(jù)處理。有關(guān)詳細(xì)信息,請參見使用AEL對Hive中的受管表使用表輸入到表輸出步驟(https://help.pentaho.com/Documentation/9.1/Products/Using_Table_input_to_Table_output_steps_with_AEL_for_managed_tables_in_Hive)。
- 如果您在Hive中使用外部表的AEL,那么使用Hadoop輸入和Hadoop輸出步驟來處理表格數(shù)據(jù)。
連接Hive數(shù)據(jù)庫
當(dāng)使用表輸入和表輸出步驟時,您可以通過兩種方式之一連接到Hive,從而在同一個集群內(nèi)實現(xiàn)對小型和大型表的最佳處理速度:
- 使用AEL訪問安全HDP集群或Amazon EMR集群上的小型非托管Hive表。有關(guān)詳細(xì)信息,請參見配置Hive服務(wù)的AEL守護(hù)進(jìn)程(https://help.pentaho.com/Documentation/9.1/Setup/Set_up_the_Adaptive_Execution_Layer_(AEL)#t_pentaho_config_ael_daemon_for_hive_on_emr_ael_setup_specific_to_hive)。
- 使用帶Hive Warehouse連接器(HWC)的AEL來訪問安全HDP集群上的Hive中的托管表或大型非托管表。詳情請參閱為Hive Warehouse連接器配置AEL守護(hù)進(jìn)程在你Hortonworks集群(https://help.pentaho.com/Documentation/9.1/Setup/Set_up_the_Adaptive_Execution_Layer_(AEL)#r_pentaho_configure_the_ael_daemon_for_hive_warehouse_connector_on_hdp_ael_setup_specific_to_hive)。
連接Impala數(shù)據(jù)庫
我們支持Impala版本2.2.x。在使用表格輸入步驟通過AEL連接到Impala數(shù)據(jù)庫之前,您必須下載并安裝Cloudera Impala驅(qū)動程序。
按以下步驟下載安裝Cloudera Impala驅(qū)動程序:
現(xiàn)在可以使用表輸入步驟通過AEL連接到Impala數(shù)據(jù)庫。
總結(jié)
以上是生活随笔為你收集整理的hive 临时表 with_Kettle(PDI)转换中输入表输入详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql注入攻击实_三十三、MySQL
- 下一篇: java抓取图片_java 抓取网页的图