国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【Trafodion使用技巧篇】Trafodion數(shù)據(jù)加載介紹

KunMinX / 3651人閱讀

摘要:用例測(cè)試表繼續(xù)用上述的創(chuàng)建測(cè)試文件,內(nèi)容如下創(chuàng)建文件,內(nèi)容如下根據(jù)文件加載數(shù)據(jù)檢查數(shù)據(jù)是否轉(zhuǎn)換成功初試主要是針對(duì)大數(shù)據(jù)量的且一般是批量裝載的方式。

Trafodion 的數(shù)據(jù)加載主要包括兩種方法,即 Trickle Load(持續(xù)加載) 和 Bulk Load(批量加載)。
下表介紹了兩種加載方法的區(qū)別:

類型 描述 方法/工具
Trickle Load 數(shù)據(jù)量較小,立即插入 ODB 工具(性能通常較第三方ETL工具更好); ETL 工具如kettle、Informatica等; 自主開發(fā)的ODBC/JDBC應(yīng)用。
Bulk Load 數(shù)據(jù)量較大;階段性數(shù)據(jù)并且是批量加載的方式 Bulk Loader

從SQL插入語(yǔ)句實(shí)現(xiàn)方式來看,

Trickle Load 又包括以下三種方式:

INSERT

UPSERT

UPSERT USING LOAD

而Bulk Load主要的SQL命令為: LOAD

以上4種SQL實(shí)現(xiàn)加載方式區(qū)別如下表:

特征 INSERT UPSERT UPSERT USING LOAD LOAD
事務(wù) 不是,使用HBase的WAL來恢復(fù) 不是,使用快照(SNAPSHOT)來恢復(fù)
操作方法 通過CheckAndPut調(diào)用走標(biāo)準(zhǔn)HBase寫路徑 通過Put調(diào)用走標(biāo)準(zhǔn)HBase寫路徑 通過Put調(diào)用走標(biāo)準(zhǔn)HBase寫路徑 使用HBase bulk load寫路徑并直接創(chuàng)建HFiles
唯一性約束 強(qiáng)制 不強(qiáng)制,有相同鍵值的覆蓋之前的行 不強(qiáng)制,有相同鍵值的覆蓋之前的行 部分強(qiáng)制
索引 可以用在有索引的表上 可以用在有索引的表上 當(dāng)用在有索引的表上時(shí),會(huì)回到UPSERT 可以用在有索引的表,索引會(huì)不起作用
最大Size 10k*n 行,n代表節(jié)點(diǎn)數(shù) 10k*n 行,n代表節(jié)點(diǎn)數(shù) 5million*n 行,n代表節(jié)點(diǎn)數(shù) 2 billion*n行,n代表節(jié)點(diǎn)數(shù)
最小Size 1行 1行 1行 1million*n行
速度 最慢 比INSERT快 比UPSERT快 最快
Trafodion Trickle Load 之 odb Load/Extract/Copy命令用法

(注:以下只是初步介紹Trafodion odb工具的幾個(gè)主要命令的基本用法,更多用法及適用場(chǎng)景請(qǐng)見下載官方文檔點(diǎn)擊打開鏈接查看詳情)

LOAD

語(yǔ)法

用例
(1)創(chuàng)建測(cè)試表

(2)創(chuàng)建測(cè)試文件并編輯數(shù)據(jù)

(3)Load文件到測(cè)試表

(4)檢查L(zhǎng)oad是否成功

EXTRACT

語(yǔ)法

用例
(1)繼續(xù)使用上述測(cè)試表,當(dāng)前測(cè)試表已經(jīng)加載了5條數(shù)據(jù)。

(2)Extract上表數(shù)據(jù)到指定文件

[centos@cent-1 bin]$ ./odb64luo -u trafodion -p traf123 -d traf -l src=test.file:tgt=trafodion.seabase.test_tbl
> :fs=,:rows=5:loadcmd=IN:truncate:parallel=2
odb [main(1354)] - Unknow option :fs=,:rows=5:loadcmd=IN:truncate:parallel=2. Ignored
odb [2016-09-26 09:15:51]: starting ODBC connection(s)... (1) 1 2
Connected to Trafodion
[0.0.0]--- 0 row(s) deleted in 0.687s (prep 0.006s, exec 0.681s, fetch 0.000s/0.000s)
[0] 5 records inserted [commit]
[0] odb version 1.1.0 Load(2) statistics:
        [0] Target table: TRAFODION.SEABASE.TEST_TBL
        [0] Source: test.file
        [0] Pre-loading time: 0.327 s (00:00:00.327)
        [0] Loading time: 0.146 s(00:00:00.146)
        [0] Total records read: 5
        [0] Total records inserted: 5
        [0] Total number of columns: 2
        [0] Total bytes read: 31
        [0] Average input row size: 6.2 B
        [0] ODBC row size: 21 B (data) + 16 B (len ind)
        [0] Rowset size: 100
        [0] Rowset buffer size: 3.61 KiB
        [0] Load throughput (real data): 0.207 KiB/s
        [0] Load throughput (ODBC): 0.702 KiB/s
odb [2016-09-26 09:15:51]: exiting. Session Elapsed time 0.479 seconds (00:00:00.479)

(3)查詢文件內(nèi)容

COPY

語(yǔ)法

用例
(1)創(chuàng)建一個(gè)表和原測(cè)試結(jié)構(gòu)一致

(2)利用COPY命令把原測(cè)試表數(shù)據(jù)復(fù)制到新表

[centos@cent-1 bin]$ ./odb64luo -u trafodion:trafodion -p traf123:traf123 -d traf:traf -cp src=trafodion.seabase.test_tbl:tgt=trafodion.seabase.test_tbl2:rows=m2:truncate
Connected to Trafodion
odb [2016-09-26 09:51:51]: starting ODBC connection(s)... 0 >1 >2
Connected to Trafodion
[1.0.0]--- 0 row(s) deleted in 0.298s (prep 0.285s, exec 0.013s, fetch 0.000s/0.000s)
[1] 5 records copied [commit]
[0] odb version 1.1.0 Copy statistics:
        [0] Source: TRAFODION.SEABASE.TEST_TBL
        [0] Target: trafodion.seabase.test_tbl2
        [0] Total number of columns: 2
        [0] ODBC row size: 23 B (data) + 16 B (len ind)
        [0] Rowset size: 53,773
        [0] Rowset buffer size: 2,048.00 KiB
        [0] Pre-copy time: 0.677 s (00:00:00.677)
        [0] Copy time: 0.037 s (00:00:00.037)
        [0] Total records copied: 5 (0.135 krec/s)
        [0] Copy throughput (ODBC): 0.003 MiB/s  (0.010 GiB/h)
                [0] Total/Wait cycles: 1/0
                        [0>1] 5 records copied in 0.037 (00:00:00.037 s)
                        [0>2] 0 records copied in 0.037 (00:00:00.037 s)
odb [2016-09-26 09:51:52]: exiting. Session Elapsed time 0.733 seconds (00:00:00.733)

(3)檢查數(shù)據(jù)是否復(fù)制成功

TRANSFORM

語(yǔ)法

Transform是Load的一種,Transform的意思是在Load的時(shí)候通過一個(gè)mapfile來實(shí)現(xiàn)一些功能,比如忽略輸入文件的某些行、生產(chǎn)序列號(hào)、插入常量、日期格式轉(zhuǎn)換、字符串截取和替換、生成隨機(jī)數(shù)等等。

用例
(1)測(cè)試表繼續(xù)用上述的test_tbl

(2)創(chuàng)建測(cè)試Input文件,內(nèi)容如下:

(3)創(chuàng)建map文件,內(nèi)容如下:

(4)根據(jù)map文件加載數(shù)據(jù)

[centos@cent-1 bin]$ ./odb64luo -u trafion -p traf123 -d traf -l src=test_transform.file:tgt=trafodion.seabase.test_tbl:map=m.map:fs=,:truncate
odb [2016-09-26 10:28:49]: starting ODBC connection(s)... 0
Connected to Trafodion
[0.0.0]--- 5 row(s) deleted in 0.042s (prep 0.001s, exec 0.041s, fetch 0.000s/0.000s)
[0] 5 records inserted [commit]
[0] odb version 1.1.0 Load statistics:
        [0] Target table: TRAFODION.SEABASE.TEST_TBL
        [0] Source: test_transform.file
        [0] Pre-loading time: 0.165 s (00:00:00.165)
        [0] Loading time: 0.023 s(00:00:00.023)
        [0] Total records read: 5
        [0] Total records inserted: 5
        [0] Total number of columns: 2
        [0] Total bytes read: 75
        [0] Average input row size: 15.0 B
        [0] ODBC row size: 21 B (data) + 16 B (len ind)
        [0] Rowset size: 100
        [0] Rowset buffer size: 3.61 KiB
        [0] Load throughput (real data): 3.184 KiB/s
        [0] Load throughput (ODBC): 4.458 KiB/s
odb [2016-09-26 10:28:49]: exiting. Session Elapsed time 0.195 seconds (00:00:00.195)

(5)檢查數(shù)據(jù)是否轉(zhuǎn)換成功

Trafodion Bulk Load 初試

Bulk Load主要是針對(duì)大數(shù)據(jù)量的且一般是批量裝載的方式。Bulk Load通常使用LOAD語(yǔ)句實(shí)現(xiàn)。

下面介紹幾種Bulk Load方式,

從Trafodion表加載數(shù)據(jù)

從HDFS文件加載數(shù)據(jù)(Hive外部表)

從Hive表加載數(shù)據(jù)

從外部數(shù)據(jù)庫(kù)加載數(shù)據(jù)(Mysql to Hive)

從Trafodion表加載數(shù)據(jù)

(1)創(chuàng)建兩個(gè)表結(jié)構(gòu)相同的測(cè)試表

(2)表1有幾條數(shù)據(jù),表2沒有數(shù)據(jù)

(3)從表1加載數(shù)據(jù)到表2

從HDFS文件加載數(shù)據(jù)(Hive 外部表)

(1)創(chuàng)建測(cè)試文件并利用scp或者其他方式上傳到Hadoop Cluster上,內(nèi)容如下

(2)將測(cè)試文件導(dǎo)入HDFS中

(3)在Trafodion中創(chuàng)建測(cè)試表


(4)在Hive中創(chuàng)建Hive外部表,指向前面對(duì)應(yīng)的HDFS文件

[hdfs@cent-1 ~]$ hive
 
Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/jars/hive-common-1.1.0-cdh5.4.8.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> create external table test_tbl (name string,age  int,sex  string) row format delimited fields terminated by "," location "/hive/test/test_tbl";
OK
Time taken: 0.085 seconds
hive> show tables;
OK
test_tbl
Time taken: 0.364 seconds, Fetched: 1 row(s)

(5)加載數(shù)據(jù)到Trafodion表

從Hive表加載數(shù)據(jù)

(1)在Hive中創(chuàng)建測(cè)試表并插入幾條數(shù)據(jù)


(2)Trafodion中的表繼續(xù)沿用上述測(cè)試表,先清空數(shù)據(jù)

(3)從Hive加載數(shù)據(jù)到Trafodion
(注:在做從hive到trafodion數(shù)據(jù)加載的時(shí)候有幾個(gè)參數(shù)可以配置,用來提升加載性能,如HIVE_MAX_STRING_LENGTH、ALLOW_INCOMPATIBLE_ASSIGNMENT

典型的用法如下:

CQD HIVE_MAX_STRING_LENGTH "1000"; --用于當(dāng)列的最大長(zhǎng)度為1KB時(shí)

CQD ALLOW_INCOMPATIBLE_ASSIGNMENT "ON"; --用于當(dāng)有時(shí)間相關(guān)的列的時(shí)候

從外部數(shù)據(jù)庫(kù)加載數(shù)據(jù)(Mysql to Hive)

(1)在集群上安裝并啟動(dòng)Sqoop,Sqoop安裝步驟請(qǐng)參照其官方文檔點(diǎn)擊打開鏈接

(2)下載mysql connector Jar包,并放到/var/lib/sqoop目錄下

(3)在某臺(tái)機(jī)器上安裝Mysql,安裝Mysql步驟此處不作詳細(xì)說明

(4)在mysql數(shù)據(jù)中創(chuàng)建測(cè)試表,并插入幾條數(shù)據(jù)

(5)使用sqoop命令從mysql往hive導(dǎo)入數(shù)據(jù)

[hdfs@cent-2 ~]$  sqoop import --connect jdbc:mysql://localhost:3306/test --driver com.mysql.jdbc.Driver --username centos --table test_tbl --split-by name --hive-import --create-hive-table --hive-table test_tabl_hive
Warning: /opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
...
Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/jars/hive-common-1.1.0-cdh5.4.8.jar!/hive-log4j.properties
OK
Time taken: 3.052 seconds
Loading data to table default.test_tabl_hive
Table default.test_tabl_hive stats: [numFiles=4, totalSize=27]
OK
Time taken: 0.748 seconds

(6)從Trafodion或Hive Shell中查看數(shù)據(jù)是否導(dǎo)入成功

作者:Post_yuan,易鯨捷資深交付工程師。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/17800.html

相關(guān)文章

  • Trafodion使用技巧】關(guān)于Trafodion表和Hbase表

    摘要:表與表如何映射我們已經(jīng)知道中的表其實(shí)是映射和存儲(chǔ)在表中的,本文通過一個(gè)簡(jiǎn)單介紹一下中創(chuàng)建的表是如何映射到表。下面通過一個(gè)例子簡(jiǎn)單介紹如何通過來訪問原生的表。 Trafodion表與HBase表如何映射 我們已經(jīng)知道Trafodion中的表其實(shí)是映射和存儲(chǔ)在HBase表中的, 本文通過一個(gè)簡(jiǎn)單DEMO介紹一下Trafodion中創(chuàng)建的表是如何映射到HBase表。 1.創(chuàng)建Trafodio...

    233jl 評(píng)論0 收藏0
  • Trafodion值得放入工具箱,因?yàn)橛幸韵聝?yōu)點(diǎn)

    摘要:而支持事務(wù)處理,尤其是分布式情況下的事務(wù)和數(shù)據(jù)一致性是很復(fù)雜的事情。 Trafodion是Apache基金會(huì)的一個(gè)開源項(xiàng)目,提供了一個(gè)成熟的企業(yè)級(jí)SQL-on-HBase解決方案。Trafodion的主要設(shè)計(jì)思想是處理operational類型的工作負(fù)載,或者是傳統(tǒng)的OLTP應(yīng)用。此外,對(duì)于需要保證數(shù)據(jù)一致性、需要標(biāo)準(zhǔn)SQL開發(fā)接口,或者需要實(shí)時(shí)數(shù)據(jù)讀寫分析的應(yīng)用,Trafodion也...

    luckyyulin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<