当前位置: 首页 > news >正文

sqoop操作

介绍

        sqoop是隶属于Apache旗下的, 最早是属于cloudera公司的,是一个用户进行数据的导入导出的工具, 主要是将关系型的数据库(MySQL, oracle...)导入到hadoop生态圈(HDFS,HIVE,Hbase...) , 以及将hadoop生态圈数据导出到关系型数据库中

操作

        将数据从mysql中导入到HDFS中

        1.全量导入

sqoop import \
--connect jdbc:mysql://192.168.52.150:3306/test \
--username root \
--password 123456 \
--table emp \
--fields-terminated-by '\001' \
--delete-target-dir \
--target-dir '/sqoop_works/emp_1' \
--split-by id \
-m 2 

相关参数:

  • --connect:连接关系型数据库的URL
  • --username:连接数据库的用户名
  • --password:连接数据库的密码
  • --table:指定使用该数据库的表
  • --fields-terminated-by:设置分隔符

  • --delete-target-dir:删除目标地址中的文件夹
  • --target-dir:导入在HDFS中的地址

        (选用)需要两个一起使用,即在/sqoop_works/emp_1目录下导入数据,如果这个目录之前有数据了,则删除原来的数据再导入。


  • --split-by:按照属性切割数据
  • -m:设置map数量

        (选用)需两个一起使用,即按照id对数据进行切割,结果分为两份。

结果:

        2.条件导入

        基于全量导入,在语句中写上--where(条件)或--query(SQL语句)

例如:

        --where 'id > 1205'

或者:

        --query 'select deg  from emp where 1=1 AND $CONDITIONS'

        $CONDITIONS是一个占位符,通常用来动态添加条件。在实际使用中,$CONDITIONS会被替换为具体的条件语句,比如WHERE子句中的具体条件,以实现更灵活的查询功能。

        将数据从mysql中导入到Hive中

        1.全量导入

sqoop import \
--connect jdbc:mysql://192.168.52.150:3306/test \
--username root \
--password 123456 \
--table emp_add \
--hcatalog-database hivesqoop \
--hcatalog-table emp_add_hive \

        与导入到HDSF类似,只是导入到的地方不同

  • --hcatalog-database:指定数据库名称
  • --hcatalog-table:指定表名

        上述代码功能为:把msql中的test数据库emp_add表的数据导入到Hive中hivesqoop数据库中的emp_add_hive表

        2.条件导入

        同样的也是加--where(条件)或--query(SQL语句)

        将数据从Hive导出到msql中

        语句如下:

sqoop export \
--connect jdbc:mysql://192.168.52.150:3306/test \
--username root \
--password 123456 \
--table emp_add_mysql \
--hcatalog-database hivesqoop \
--hcatalog-table emp_add_hive \

        和导入类似,只是把sqoop import换成了sqoop export

        导出数据的时候,必须先在mysql中创建表才可以将数据导入到这个表里面

http://www.lryc.cn/news/359795.html

相关文章:

  • 【Qt秘籍】[002]-开始你的Qt之旅-下载
  • 【自动驾驶】点与向量从ego系转odometry系
  • jsmug:一个针对JSON Smuggling技术的测试PoC环境
  • Qt 控件提升
  • 封装一个websocket,支持断网重连、心跳检测,拿来开箱即用
  • 推荐一款开源电子签章/电子合同系统
  • Qt Creator(Qt 6.6)拷贝一行
  • 红队内网攻防渗透:内网渗透之数据库权限提升技术
  • 从0开始制作微信小程序
  • Linux学习笔记:日志文件的编写
  • 为什么要保持方差为1
  • Wpf 使用 Prism 实战开发Day31
  • Linux权限提升二
  • [AI OpenAI] 推出ChatGPT Edu
  • HTML5+CSS3回顾总结
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.05.01-2024.05.10
  • Python 点云生成高程模型图(DSM)
  • [第五空间 2021]WebFTP
  • SQL—DQL(数据查询语言)之小结
  • 找回xmind文件办法:一切意外均可找回(误删/重启关机等)
  • 微信小程序 npm构建+vant-weaap安装
  • 【LeetCode 63】 不同路径 II
  • OpenAI助手API接入-问答对自动生成
  • 9. C++通过epoll+fork的方式实现高性能网络服务器
  • 【Mac】XMind for mac(XMind思维导图)v24.04.10311软件介绍和安装教程
  • 使用 Django ORM 进行数据库操作
  • 行为型设计模式之模板模式
  • 大泽动力车载柴油发电机的特点和优势有哪些
  • 基于 IP 的 DDOS 攻击实验
  • GPT-4o如何重塑AI未来!