Mysql 匯入資料 本地 HDFS資料入庫

2021-10-10 09:55:25 字數 3020 閱讀 5989

在mysql中建好錶後,匯入資料的時候使用了2種方法

1)由txt/xlsx/xls檔案匯入

網上步驟一步一步進行即可,位址鏈結

tips:使用該方法遇到的問題:

1、使用txt文件匯入資料時,即使txt文件資料和表字段一一選好,但還是會出現錯位的情況,不知為何在他匯入的時候會自己重新排插入表字段的順序,還是會對應不上;

2、使用xlsx/xls匯入資料時,字段缺少不能實現一一對應;

2)命令列 load

load data local infile 『檔案絕對路徑』 into table 表名 character set utf8 fields terminated by 『,』;

load data local infile 『g:/data/mr-ah-0628-pro_cit_day.txt』 into table table1 character set utf8 fields terminated by 『,』;

load data local infile 『g:/data_mysql/』 into table character set utf8 fields terminated by 『,』;

load data local infile 『g:/data_mysql/』 into table character set utf8 fields terminated by 『|』;

tips:

1、沒有遇到問題,但是要注意命令列在要操作的資料庫右鍵-> 命令列介面開啟 ,注意加上編碼和字段分隔符;

2、innodb預設是開啟事務的,如果我們把事務給停了,插入百萬級資料速度會快很多;

//停掉事務

set autocommit = 0;

//呼叫儲存過程

call ptestinndb;

//重啟事務

set autocommit = 1;

3)轉出資料(已經生成表和資料)

需要在cmd上執行

mysqldump -u *** -p -e xx  表名 > 路徑/匯出檔名.sql
4)sqoop本地檔案到mysql表
sqoop eval --connect jdbc:mysql: --username root --password 123456 --query "load data local infile '/root/submit/mr_split/a.txt' into table  table1 character set utf8 fields terminated by ',';"
5)sqoophdfs檔案到mysql表
sqoop export \

--connect jdbc:mysql://hadoop001:3306/sqoop \

--username root \

--password 123456 \

--table emp_demo \

--export-dir /data/emp.txt \

-m 1 \

--verbose \

--fields-terminated-by '\t'

tips:

–table 指定mysql接收資料的表

–export-dir 指定從hdfs那個路徑下匯出資料

–verbose 列印更多資訊

–fields-terminated-by 『\t』 指定分隔符為\t 記住必須指定分隔符否則報錯

示例:sqoop export --connect jdbc:mysql: --table emp_demo --username root --password 111111 --export-dir /opt/hadoop/hive/ --input-fields-terminated-by '\t'

mysql匯入資料報錯error 1290

1)mysql匯出為本地檔案:

方法1:

select a.*,b.rru_related_sit_code from 庫.表名 as a join dim_sector as b on a.base_statn_id=b.base_statn_id and a.cell_id=b.cell_id and b.province_id=844 and b.day=20200724 and a.province_id=844 and b.day=20200724 into outfile 「g:/data_mysql/1.txt」 fields terminated by 『,』;

into outfile 「g:/data_mysql/1.txt」 fields terminated by 『,』;

方法2:

通過mysql select outfile的方式匯出資料

select id,name into outfile 「d:\temp\demo.txt」 fields terminated by 「,」 lines terminated by 『\r\n』

from demo;

方法3:

通過mysql select outfile 配合escaped by ''匯出資料

select id,name into outfile 「d:\temp\demo1.txt」 fields terminated by 「\t」 escaped by 『』 lines terminated by 『\r\n』

from demo;

方法4:

mysql外匯出資料

mysql -u*** -p *** -e 「」 | tr 「\t」 「,」 >> /.txt

2)mysql匯出為hdfs檔案

sqoop import --connect jdbc:mysql: --username root --password 111111 --table emp_demo --fields-terminated-by 『\t』 -m 1

hive 本地 hdfs資料匯入

1.1匯入內部表 1 本地或者hdfs匯入 load data local inpath filepath overwrite into tabletablename partition partcol1 val1,partcol2 val2 區別是看有無關鍵字local,有local表示從本地路徑...

Hive 表資料的匯出 匯入(HDFS 本地)

資料匯出 1 語法 load data local inpath 資料的path overwrite into table student partition partcol1 val1,1 load data 表示載入資料 2 local 表示從本地載入資料到hive表 否則從hdfs載入資料到h...

mysql本地匯入匯出 MySQL資料匯出與匯入

工具 mysql mysqldump 應用舉例 匯出匯出全庫備份到本地的目錄 mysqldump u user p passwd h127.0.0.1 p3306 routines default character set utf8 lock all tables add drop databas...