日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Hive數據源

Hive數據源為您提供讀取和寫入Hive雙向通道的功能,本文為您介紹DataWorks的Hive數據同步的能力支持情況。

背景信息

Hive是基于Hadoop的數據倉庫工具,用于解決海量結構化日志的數據統計。Hive可以將結構化的數據文件映射為一張表,并提供SQL查詢功能。Hive的本質是一個SQL解析引擎,其底層通過MapReduce實現數據分析,使用HDFS存儲處理的數據,將HQL轉化為MapReduce程序并在YARN上運行。

Hive Reader插件通過訪問HiveMetastore服務,獲取您配置的數據表的元數據信息。您可以基于HDFS文件和Hive JDBC兩種方式讀取數據:

  • 基于HDFS文件讀取數據

    Hive Reader插件通過訪問HiveMetastore服務,解析出您配置的數據表的HDFS文件存儲路徑、文件格式、分隔符等信息后,再通過讀取HDFS文件的方式讀取Hive中的表數據。

  • 基于Hive JDBC讀取數據

    Hive Reader插件通過Hive JDBC客戶端連接HiveServer2服務讀取數據。Hive Reader支持通過where條件過濾數據,并支持直接通過SQL讀取數據。

Hive Writer插件通過訪問Hive Metastore服務,解析出您配置的數據表的HDFS文件存儲路徑、文件格式和分隔符等信息。通過寫HDFS文件的方式,將數據寫入到HDFS中,再通過Hive JDBC客戶端執行LOAD DATA SQL語句,加載HDFS文件中的數據至Hive表。

Hive Writer底層的邏輯和HDFS Writer插件一致,您可以在Hive Writer插件參數中配置HDFS Writer相關的參數,配置的參數會透傳給HDFS Writer插件。

支持的版本

Hive插件支持的版本

0.8.0
0.8.1
0.9.0
0.10.0
0.11.0
0.12.0
0.13.0
0.13.1
0.14.0
1.0.0
1.0.1
1.1.0
1.1.1
1.2.0
1.2.1
1.2.2
2.0.0
2.0.1
2.1.0
2.1.1
2.2.0
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
3.0.0
3.1.0
3.1.1
3.1.2
3.1.3
0.8.1-cdh4.0.0
0.8.1-cdh4.0.1
0.9.0-cdh4.1.0
0.9.0-cdh4.1.1
0.9.0-cdh4.1.2
0.9.0-cdh4.1.3
0.9.0-cdh4.1.4
0.9.0-cdh4.1.5
0.10.0-cdh4.2.0
0.10.0-cdh4.2.1
0.10.0-cdh4.2.2
0.10.0-cdh4.3.0
0.10.0-cdh4.3.1
0.10.0-cdh4.3.2
0.10.0-cdh4.4.0
0.10.0-cdh4.5.0
0.10.0-cdh4.5.0.1
0.10.0-cdh4.5.0.2
0.10.0-cdh4.6.0
0.10.0-cdh4.7.0
0.10.0-cdh4.7.1
0.12.0-cdh5.0.0
0.12.0-cdh5.0.1
0.12.0-cdh5.0.2
0.12.0-cdh5.0.3
0.12.0-cdh5.0.4
0.12.0-cdh5.0.5
0.12.0-cdh5.0.6
0.12.0-cdh5.1.0
0.12.0-cdh5.1.2
0.12.0-cdh5.1.3
0.12.0-cdh5.1.4
0.12.0-cdh5.1.5
0.13.1-cdh5.2.0
0.13.1-cdh5.2.1
0.13.1-cdh5.2.2
0.13.1-cdh5.2.3
0.13.1-cdh5.2.4
0.13.1-cdh5.2.5
0.13.1-cdh5.2.6
0.13.1-cdh5.3.0
0.13.1-cdh5.3.1
0.13.1-cdh5.3.2
0.13.1-cdh5.3.3
0.13.1-cdh5.3.4
0.13.1-cdh5.3.5
0.13.1-cdh5.3.6
0.13.1-cdh5.3.8
0.13.1-cdh5.3.9
0.13.1-cdh5.3.10
1.1.0-cdh5.3.6
1.1.0-cdh5.4.0
1.1.0-cdh5.4.1
1.1.0-cdh5.4.2
1.1.0-cdh5.4.3
1.1.0-cdh5.4.4
1.1.0-cdh5.4.5
1.1.0-cdh5.4.7
1.1.0-cdh5.4.8
1.1.0-cdh5.4.9
1.1.0-cdh5.4.10
1.1.0-cdh5.4.11
1.1.0-cdh5.5.0
1.1.0-cdh5.5.1
1.1.0-cdh5.5.2
1.1.0-cdh5.5.4
1.1.0-cdh5.5.5
1.1.0-cdh5.5.6
1.1.0-cdh5.6.0
1.1.0-cdh5.6.1
1.1.0-cdh5.7.0
1.1.0-cdh5.7.1
1.1.0-cdh5.7.2
1.1.0-cdh5.7.3
1.1.0-cdh5.7.4
1.1.0-cdh5.7.5
1.1.0-cdh5.7.6
1.1.0-cdh5.8.0
1.1.0-cdh5.8.2
1.1.0-cdh5.8.3
1.1.0-cdh5.8.4
1.1.0-cdh5.8.5
1.1.0-cdh5.9.0
1.1.0-cdh5.9.1
1.1.0-cdh5.9.2
1.1.0-cdh5.9.3
1.1.0-cdh5.10.0
1.1.0-cdh5.10.1
1.1.0-cdh5.10.2
1.1.0-cdh5.11.0
1.1.0-cdh5.11.1
1.1.0-cdh5.11.2
1.1.0-cdh5.12.0
1.1.0-cdh5.12.1
1.1.0-cdh5.12.2
1.1.0-cdh5.13.0
1.1.0-cdh5.13.1
1.1.0-cdh5.13.2
1.1.0-cdh5.13.3
1.1.0-cdh5.14.0
1.1.0-cdh5.14.2
1.1.0-cdh5.14.4
1.1.0-cdh5.15.0
1.1.0-cdh5.16.0
1.1.0-cdh5.16.2
1.1.0-cdh5.16.99
2.1.1-cdh6.1.1
2.1.1-cdh6.2.0
2.1.1-cdh6.2.1
2.1.1-cdh6.3.0
2.1.1-cdh6.3.1
2.1.1-cdh6.3.2
2.1.1-cdh6.3.3
3.1.1-cdh7.1.1

使用限制

  • Hive數據源支持使用Serverless資源組(推薦)獨享數據集成資源組

  • 目前僅支持讀取TextFile、ORCFile和ParquetFile三種格式的文件。

  • 使用數據集成向Hive集群進行離線同步的過程中,會在服務端側產生臨時文件,在同步任務執行完成時,會自動刪除。您需要留意服務端HDFS目錄文件數限制,避免非預期的文件數達到上限導致HDFS文件系統不可用,DataWorks平臺無法保障文件數在HDFS目錄允許范圍內。

    說明

    服務端可以通過修改dfs.namenode.fs-limits.max-directory-items參數,定義單個目錄下不含遞歸的最大目錄數或者文件數,默認值1048576,取值范圍1~6400000。可以將HDFS的參數dfs.namenode.fs-limits.max-directory-items調大或者清理不需要的文件以規避此問題。

  • 訪問Hive數據源時目前支持使用Kerberos身份認證方式和SSL認證認證方式,如果訪問數據源時不需要進行身份認證,則新增數據源時認證選項選擇無認證

  • 在DataWorks使用Kerberos認證身份訪問Hive數據源時,如果HiveServer2與metastore均開啟了Kerberos認證,但是兩者認證的principal存在不一致時,需要在擴展參數配置項做如下配置:

     {
    "hive.metastore.kerberos.principal": "your metastore principal"
    }

支持的字段類型

離線讀

類型分類

Hive數據類型

字符串類

CHAR、VARCHAR、STRING

整數類

TINYINT、SMALLINT、INT、INTEGER、BIGINT

浮點類

FLOAT、DOUBLE、DECIMAL

日期時間類

TIMESTAMP、DATE

布爾型

BOOLEAN

數據同步前準備

不同的數據源配置模式,準備工作不同,具體如下:

阿里云實例模式

如果您要同步此實例下的OSS表,請選擇對應的訪問身份,支持阿里云主賬號阿里云子賬號RAM角色三種訪問身份。請確保選擇的OSS訪問身份有對應的OSS權限,否則數據同步會因為讀寫權限不足失敗。

重要

測試連通性不會校驗數據讀寫權限。

連接串模式

使用DLF的配置

如果您的Hive數據源元數據管理方式使用的是DLF方式,您需要在配置Hive數據源時擴展參數一欄中增加如下內容:

{"dlf.catalog.id" : "my_catalog_xxxx"}

其中my_catalog_xxxx是您在EMR的Hive配置參數dlf.catalog.id里對應的名稱。

高可用HA配置

若您要同步的EMR Hive集群開啟了高可用,您需要在配置Hive數據源時擴展參數一欄,配置HA的相關信息,格式如下。您可以前往EMR控制臺找到目標集群,然后單擊操作列的集群服務,獲取相關配置值。

{
//HA的相關配置示例如下。
"dfs.nameservices":"testDfs",
"dfs.ha.namenodes.testDfs":"namenode1,namenode2",
"dfs.namenode.rpc-address.testDfs.namenode1": "",
"dfs.namenode.rpc-address.testDfs.namenode2": "",
"dfs.client.failover.proxy.provider.testDfs":"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
//(可選)底層存儲為OSS時,需在擴展參數中配置以下連接OSS服務所需的參數。
"fs.oss.accessKeyId":"<yourAccessKeyId>",
"fs.oss.accessKeySecret":"<yourAccessKeySecret>",
"fs.oss.endpoint":"oss-cn-<yourRegion>-internal.aliyuncs.com"
}

OSS外表配置

當底層存儲為OSS時,請注意以下問題:

  • defaultFS的配置請以oss://為前綴。例如,oss://bucketName

  • 若您要同步的表為OSS外表,您需要在配置Hive數據源時擴展參數一欄配置OSS相關信息。

    {
        "fs.oss.accessKeyId":"<yourAccessKeyId>",
        "fs.oss.accessKeySecret":"<yourAccessKeySecret>",
        "fs.oss.endpoint":"oss-cn-<yourRegion>-internal.aliyuncs.com"
    }
  • 若您要同步的表為OSS-HDFS外表,您需要在配置Hive數據源時擴展參數一欄配置OSS-HDFS的相關信息。

    {
        "fs.oss.accessKeyId":"<yourAccessKeyId>",
        "fs.oss.accessKeySecret":"<yourAccessKeySecret>",
        "fs.oss.endpoint":"cn-<yourRegion>.oss-dls.aliyuncs.com"
    }

CDH模式

如果您需使用CDH模式配置Hive數據源,則需注冊CDH集群至DataWorks

創建數據源

在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源詳細的配置參數解釋可在配置界面查看對應參數的文案提示

下面是對不同認證選項的參數說明:

Kerberos認證

參數

參數說明

keytab文件

在Kerberos環境中注冊服務主體生成的.keytab文件。

conf文件

conf文件指的是Kerberos的配置文件,主要用于定義Kerberos客戶端和服務器的各種設置。主要配置文件:

  • krb5.conf:客戶端和庫使用的配置文件,定義全局默認設置、領域配置、域名映射、應用程序默認設置和日志記錄選項。

  • kdc.conf:KDC(Key Distribution Center)服務器的配置文件,定義數據庫位置、日志文件位置以及其他KDC特有的設置。

principal

身份實體,可以是用戶或服務,具有唯一的名稱和相關的加密密鑰。

  • 用戶principal格式:username@REALM

  • 服務principal格式:service/hostname@REALM

SSL認證

參數

參數說明

Truststore證書文件

啟用SSL認證生成的Truststore證書文件,例如truststore.jks文件。

Truststore密碼

啟用SSL認證生成Truststore證書文件時設置的密碼。

Keystore證書文件

啟用SSL認證生成的Keystore證書文件,例如keystore.jks文件。

Keystore密碼

啟用SSL認證生成Keystore證書文件時設置的密碼。

數據同步任務開發

數據同步任務的配置入口和通用配置流程可參見下文的配置指導。

單表離線同步任務配置指導

整庫離線讀同步配置指導

操作流程請參見數據集成側同步任務配置

附錄:腳本Demo與參數說明

離線任務腳本配置方式

如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。

Reader腳本Demo

您可以基于HDFS文件和Hive JDBC讀取數據:

  • 基于HDFS文件讀取數據

    {
        "type": "job",
        "steps": [
            {
                "stepType": "hive",
                "parameter": {
                    "partition": "pt1=a,pt2=b,pt3=c", //分區信息
                    "datasource": "hive_not_ha_****", //數據源名稱
                    "column": [ //需要讀取的字段列
                        "id",
                        "pt2",
                        "pt1"
                    ],
                    "readMode": "hdfs", //讀取方式
                    "table": "part_table_1",
                    "hdfsUsername" : "hdfs",
                    "hivePartitionColumn": [
                        {
                          "type": "string",
                          "value": "分區名1"
                        },
                        {
                          "type": "string",
                          "value": "分區名2"
                         }
                   ]
                },
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "hive",
                "parameter": {
                },
                "name": "Writer",
                "category": "writer"
            }
        ],
        "version": "2.0",
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        },
        "setting": {
            "errorLimit": {
                "record": "" //錯誤記錄數
            },
            "speed": {
                "concurrent": 2, //作業并發數
                "throttle": true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
                "mbps":"12"http://限流
            }
        }
    }
  • 基于Hive JDBC讀取數據

    {
        "type": "job",
        "steps": [
            {
                "stepType": "hive",
                "parameter": {
                    "querySql": "select id,name,age from part_table_1 where pt2='B'",
                    "datasource": "hive_not_ha_****",  //數據源名稱
                    "column": [ //需要讀取的字段列
                        "id",
                        "name",
                        "age"
                    ],
                    "where": "",
                    "table": "part_table_1",
                    "readMode": "jdbc" //讀取方式
                },
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "hive",
                "parameter": {
                },
                "name": "Writer",
                "category": "writer"
            }
        ],
        "version": "2.0",
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        },
        "setting": {
            "errorLimit": {
                "record": ""
            },
            "speed": {
                "concurrent": 2,  //作業并發數
                "throttle": true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
                "mbps":"12"http://限流            
                
            }
        }
    }

Reader腳本參數

參數

描述

是否必選

默認值

datasource

數據源名稱,必須與添加的數據源名稱保持一致。

table

表名,用于指定需要同步的表。

說明

請注意大小寫。

readMode

讀取方式:

  • 基于HDFS文件方式讀取數據,配置為"readMode":"hdfs"

  • 基于Hive JDBC方式讀取數據,配置為"readMode":"jdbc"

說明
  • 基于Hive JDBC方式讀取數據時,支持使用Where條件做數據過濾,但是此場景下,Hive引擎底層可能會生成MapReduce任務,效率較慢。

  • 基于HDFS文件方式讀取數據時,不支持使用Where條件做數據過濾,此場景下讀取數據時會直接訪問Hive表底層的數據文件進行讀取,讀取效率相對更高。

  • 基于HDFS文件方式不支持讀取視圖(VIEW)表。

partition

Hive表的分區信息:

  • 如果您基于Hive JDBC讀取數據,無需配置該參數。

  • 如果您讀取的Hive表是分區表,您需要配置partition信息。同步任務會讀取partition對應的分區數據。

    Hive Reader單級分區支持使用星號(*)作為通配符,多級分區不支持通配符。

  • 如果您的Hive表是非分區表,則無需配置partition

column

需要讀取的字段列,例如"column": ["id", "name"]

  • 支持列裁剪:即可以導出部分列。

  • 支持列換序,即可以不根據表Schema信息順序導出列。

  • 支持配置分區列。

  • 支持配置常量。

  • column必須顯示指定同步的列集合,不允許為空。

querySql

當您基于Hive JDBC方式讀取數據時,可以直接配置querySql讀取數據。

where

當您基于Hive JDBC方式讀取數據時,可以通過設置where條件過濾數據。

hdfsUsername

基于HDFS方式讀取數據,默認會用Hive數據源頁面配置的用戶讀取,若數據源頁面配置匿名登錄,則會默認使用admin賬戶讀取數據,同步任務時如果出現權限問題,需要轉腳本模式配置hdfsUsername

hivePartitionColumn

若期望把分區字段的值,同步到下游,可以轉腳本模式配置hivePartitionColumn參數。

Writer腳本Demo

{
    "type": "job",
    "steps": [
        {
            "stepType": "hive",
            "parameter": {
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "hive",
            "parameter": {
                "partition": "year=a,month=b,day=c", // 分區配置
                "datasource": "hive_ha_shanghai", // 數據源
                "table": "partitiontable2", // 目標表
                "column": [ // 列配置
                    "id",
                    "name",
                    "age"
                ],
                "writeMode": "append" ,// 寫入模式
                "hdfsUsername" : "hdfs"
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {
            "record": ""
        },
        "speed": {
            "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
            "concurrent":2, //作業并發數。
            "mbps":"12"http://限流
        }
    }
}

Writer腳本參數

參數

描述

是否必選

默認值

datasource

數據源名稱,必須與添加的數據源名稱保持一致。

column

需要寫出的字段列,例如"column": ["id", "name"]

  • 支持列裁剪:即可以導出部分列。

  • column必須顯示指定同步的列集合,不允許為空。

  • 不支持列換序。

table

需要寫出的Hive表名。

說明

請注意大小寫。

partition

Hive表的分區信息:

  • 如果您寫出的Hive表是分區表,您需要配置partition信息。同步任務會寫出partition對應的分區數據。

  • 如果您的Hive表是非分區表,則無需配置partition

writeMode

Hive表數據的寫出模式。數據寫出至HDFS文件后,Hive Writer插件會執行LOAD DATA INPATH (overwrite) INTO TABLE,加載數據至Hive表中。

writeMode用于表示數據的加載行為:

  • 如果writeModetruncate,表示先清空數據再加載。

  • 如果writeModeappend,表示保留原有數據。

  • 如果writeMode為其它,則表示數據寫出至HDFS文件,無需再加載數據至Hive表。

說明

writeMode是高危參數,請您注意數據的寫出目錄和writeMode行為,避免誤刪數據。

加載數據行為需要配合hiveConfig使用,請注意您的配置。

hiveConfig

您可以在hiveConfig中配置進一步的Hive擴展參數,包括hiveCommandjdbcUrlusernamepassword

  • hiveCommand:表示Hive客戶端工具的全路徑,執行hive -e后,會執行writeMode相關聯的LOAD DATA INPATH數據加載操作。

    Hive相關的訪問信息由hiveCommand對應的客戶端保證。

  • jdbcUrlusernamepassword表示Hive的JDBC訪問信息。HiveWriter會通過Hive JDBC驅動訪問Hive后,執行writeMode相關聯的LOAD DATA INPATH數據加載操作。

    "hiveConfig": {
        "hiveCommand": "",
        "jdbcUrl": "",
        "username": "",
        "password": ""
            }
  • Hive Writer插件底層通過HDFS客戶端,寫入數據至HDFS文件。您也可以通過hiveConfig配置HDFS客戶端的高級參數。

hdfsUsername

向Hive表寫數據時,默認會用Hive數據源頁面配置的用戶寫入,若數據源頁面配置匿名登錄,則會默認使用admin賬戶寫入數據,同步任務時如果出現權限問題,需要轉腳本模式配置hdfsUsername