前沿:

  Hive也采用类SQL的语法, 但其作为数据仓库, 与面向OLTP的传统关系型数据库(Mysql/Oracle)有着天然的差别. 它用于离线的数据计算分析, 而不追求高并发/低延时的应用场景. 最显著的特别是, Hive的数据是Schema On Read, 对数据的写入非常的自由和松散, 而对数据的读取则作了各种限制. 而RMDBS则是Schema On Write, 对数据写入限制非常的严苛.

*). 数据导入/导出
  让我们体验以下Hive中数据如何导入:
  1). 创建数据库 db_hive_test;
  CREATE DATABASE db_hive_test;
  则在HDFS的目录/user/hive/warehouse下
  [<username>@<hostname> ~]# sudo -u hdfs hdfs dfs -ls /user/hive/warehouse
  drwxrwxrwt - root hive 0 2014-07-02 10:49 /user/hive/warehouse/db_hive_test.db
  

  2). 创建数据表 tb_user

  CREATE TABLE tb_user (
    user_id int,
    username string,
    age int,
    phone string
  ) ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\t'
  STORED AS TEXTFILE;

  3). 数据准备
  在本地编辑data.txt, 内容如下所示:

  [<username>@<hostname> ~]# cat data.txt
  1001 lilei 17 13800001111
  1002 hanmm 16 13800001112
  1003 lily 16 13800001113
  1004 lucy 16 13800001114

  4). 导入数据入hive

  LOAD DATA LOCAL INPATH '/path/to/data.txt' INTO TABLE db_hive_test.tb_user;

  5). 数据验证
  select * from tb_user;
  

  是不是很简单? 但为何不使用Insert Into单行插入数据, 实际上hive的定位, 其并不支持单行的数据插入(insert)和修改(update).
  数据的导入可以借助
  #) LOAD DATA语法
  LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
  #) INSERT SELECT语法
  INSERT OVERWRITE/INTO TABLE <table_name> [PARTITION(partcol1=val1, partclo2=val2 ...)] SELECT_STATEMENT
  注: OVERWRITE重写,INTO追加。

  6). 创建数据表tb_newuser;

  CREATE TABLE tb_newuser ( 
    user_id int,
    username string,
    age int,
    phone string
  ) ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\t'
  STORED AS TEXTFILE;

  7). INSERT SELECT

  INSERT INTO TABLE tb_newuser SELECT * FROM tb_user;

  8). 数据验证
  SELECT * FROM tb_newuser;
  

  数据表结构复制
  CREATE TABLE tb_newuser02 LIKE tb_user;

  创建表时导入
  CREATE TABLE tb_newuser01 SELECT * FROM tb_user;

  数据如何导出
  导出语法: INSERT OVERWRITE/INTO LOCAL DIRECTORY '<directory>' SELECT_STATEMENT  

  INSERT OVERWRITE LOCAL DIRECTORY '/path/to/data' SELECT * FROM tb_user;
  cat /path/to/data/000000_0
  

  INSERT OVERWRITE DIRECTORY '/path/to/data' SELECT * FROM tb_user;
  

  Local的有无, 其区别在于, 一个存放在本地, 另一个存放在hdfs上

Hive 实战(1)--hive数据导入/导出基础的更多相关文章

  1. Hive常用操作之数据导入导出

    一.Hive数据导入导出 1.hive数据导出 很多时候,我们在hive中执行select语句,希望将最终的结果保存到本地文件或者保存到hdfs系统中或者保存到一个新的表中,hive提供了方便的关键词 ...

  2. Hive(四)【DML 数据导入导出】

    目录 一.数据导入 1.1 [load]--向数据中装载数据 案例 1.2 [insert]--查询语句向表中插入数据 案例 1.3 [as select]--查询语句中创建表且加载数据 案例 1.4 ...

  3. 从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上

    阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并 ...

  4. 数据仓库Hive数据导入导出

    Hive库数据导入导出 1.新建表data hive (ebank)> create table data(id int,name string) > ROW FORMAT DELIMIT ...

  5. 如何利用sqoop将hive数据导入导出数据到mysql

    运行环境  centos 5.6   hadoop  hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具. 上海尚学堂 ...

  6. 利用sqoop将hive数据导入导出数据到mysql

    一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令  #  sqoop list-databases --connect jdbc:mysql://localhost:3306 ...

  7. 2.11 Hive中数据导入导出Import和Export使用

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ImportExport 一.Export.Import Export ...

  8. hive之数据导入导出

    hive数据导入导出 一.导入数据4种方式 建表语句 create table test( name string, friends array, children map<string, in ...

  9. Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件

    一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...

随机推荐

  1. TextInfo

    https://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase(v=vs.110).aspx Co ...

  2. const char* && string && String^ 类型转换

    const char* && string && String^ 类型转换 const char* ---> string const char * cw= &q ...

  3. STM32学习笔记(八) SPI总线(操作外部flash)

    1. SPI总线简介 SPI全称串行外设接口,是一种高速,全双工,同步的外设总线:它工作在主从方式,常规需要至少4根线才能够正常工作.SPI作为基本的外设接口,在FLASH,EPPROM和一些数字通讯 ...

  4. D3.js 做一个简单的图表(条形图)

    柱形图是一种最简单的可视化图标,主要有矩形.文字标签.坐标轴组成. 本文为简单起见,只绘制矩形的部分,用以讲解如何使用 D3 在 SVG 画布中绘图. 一. 画布是什么 前几章的处理对象都是 HTML ...

  5. Android 四大组件之二(Service)

    service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务 ...

  6. windows递归拷贝(或删除等操作)文件

    SHFileOperation 以拷贝为例. CString strFrom = ....._T("src");CString strTo = ....._T("dest ...

  7. ANSI C与GNU C

    GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的.它的目标是创建一套完全自由的操作系统.它在编写linux的时候自己制作了一个标准成为 GNU C标准.A ...

  8. HTML5和CSS3登录页面制作实录

    本文详细介绍使用HTML5 和CSS3 制作一个登录页面的完整过程. View demo login.html <form id="login"> <h1> ...

  9. C#窗体布局方式

    DataGridView:显示数据表后台数据绑定: List<xxx> list = new List<xxx>(); dataGridView1.DataSource = l ...

  10. HTML 水平线<hr/>标签

    定义和用法: <hr/>标签在HTML页面中创建一条水平线. 水平分隔线(horizontal rule)可以在视觉上将文档分隔成各个部分. HTML 与 XHTML 之间的差异 在 HT ...