成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

KunMinX / 3660人閱讀

摘要:用例測試表繼續(xù)用上述的創(chuàng)建測試文件,內(nèi)容如下創(chuàng)建文件,內(nèi)容如下根據(jù)文件加載數(shù)據(jù)檢查數(shù)據(jù)是否轉(zhuǎn)換成功初試主要是針對大數(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插入語句實現(xiàn)方式來看,

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

INSERT

UPSERT

UPSERT USING LOAD

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

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

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

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

LOAD

語法

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

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

(3)Load文件到測試表

(4)檢查Load是否成功

EXTRACT

語法

用例
(1)繼續(xù)使用上述測試表,當(dāng)前測試表已經(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

語法

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

(2)利用COPY命令把原測試表數(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

語法

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

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

(2)創(chuàng)建測試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主要是針對大數(shù)據(jù)量的且一般是批量裝載的方式。Bulk Load通常使用LOAD語句實現(xiàn)。

下面介紹幾種Bulk Load方式,

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

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

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

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

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

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

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

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

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

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

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

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


(4)在Hive中創(chuàng)建Hive外部表,指向前面對應(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)建測試表并插入幾條數(shù)據(jù)


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

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

典型的用法如下:

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

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

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

(1)在集群上安裝并啟動Sqoop,Sqoop安裝步驟請參照其官方文檔點擊打開鏈接

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

(3)在某臺機器上安裝Mysql,安裝Mysql步驟此處不作詳細說明

(4)在mysql數(shù)據(jù)中創(chuàng)建測試表,并插入幾條數(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17800.html

相關(guān)文章

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

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

    233jl 評論0 收藏0
  • Trafodion值得放入工具箱,因為有以下優(yōu)點

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

    luckyyulin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<