Sqoop使用總結

Import

導入整個表mysql

目標目錄:--target-dirsql

          --warehouse-dir  (parentdir,當導入多個表的時候,不須要屢次指定輸出目錄)apache

導入表的部分數據安全

--where (用來過濾數據)併發

安全問題,密碼隱藏 –p   (--password-file(指定文件的權限))app

指定導出的文件類型 (text,sequenceFile)工具

壓縮 –compress (gz,bz2等)oop

run faster   --direct (使用native utilities export tools)post

 

控制併發 controlling parallelism  --num-mappers (要找到合適的併發數,不合適會致使表的查詢降低)spa

 

Null值的替換 –null-string ‘\\N’ \

            --null-non-string (將字符串null和非字符串null替換爲\N)

 

導出全部的表,排除一些表:--import-all-tables

                          --exclude-tables

 

將新的值append到目的表中 –check-column id

                          --last-value (指定列,指定最後更新的值)

 

 

Import from two tables

                --query 「sql」 代替instead of –-table

修改job的名稱: 當用—query沒有指定時 ,默認是QueryResukt.jar

                    --table 沒有指定時,默認是Table.jar

 

Export

to the relational database

insert operation mapreduce job

Inserting data in Batches

     --batch

       --Dsqoop.export.records.per.statement=10

import temporary Table ->real table

                   --staging-table

updating an Existing dataset(changed row) update-key

 

update or insert(upsert) at same time update-mode allowinsert

Exporting into a Subset of columns  --columns x,xx,xxx

默認地,sqoop假設hdfs數據包括和導出到的表相同的順序和數量的列

Encoding the NULL value differently

         --input-null-string  \\N

         --input-null-non-string \\N

export corrupted data  :input format not correct

 

Other

Oozie工具

Import data directly into hive

--hive-import

change the hive type of column id to string

--map-column-hive id=STRING

refresh hive table data   hive-overwrite

 

using partitioned hive table

--hive-import\

--hive-partition-key day\

--hive-partition-value 2014-12-25

remove all delims like \n,\t,\01 from string based columns

--hive-drop-import-delims

 

import data to Hbase (real-time database)

sqoop import \

--connect jdbc:mysql: //127.0.0.1/sqoop \

--username sqoop \

--password sqoop \

--table cities \

--columns ‘id,name’

--hbase-table cities \

--column-family world

 

Boolean instead of

--boolean-true-string 1

--boolean-false-string 0

 

hbase不容許插入空值

 

improving performance

須要更多的時間導入hbase

提早建立hbase create ‘city’,’word’,{NUMREGIONS=>20,SPLITALGO=>’HexString Split’}

每一個新建的hbase表只有一個region只能被一個region server服務,只能被一個物理節點訪問。

 

use schema

sqoop import \

--connect jdbc:postgresql:/127.0.0.1/database \

--username sqoop \

--password sqoop \

--table cities \

-- \

--schema us

 

 

know more about sqoop,read apache sqoop Cookbook or to http://sqoop.apache.org/

相關文章
相關標籤/搜索