前沿:

  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. java第三章动手动脑

    public class InitializeBlockDemo { /** * @param args */ public static void main(String[] args) { Ini ...

  2. Install Google Pinyin on Ubuntu 14.04

    Install Google Pinyin on Ubuntu 14.04 I've been spending more and more time on Ubuntu and I'm not us ...

  3. Codeforces Round #383 (Div. 2) A,B,C,D 循环节,标记,暴力,并查集+分组背包

    A. Arpa’s hard exam and Mehrdad’s naive cheat time limit per test 1 second memory limit per test 256 ...

  4. Cron表达式简单学习

    CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表.CronTrigger,你可以指定触 ...

  5. hdu3065病毒侵袭持续中

    链接 上一篇的姊妹篇 没啥好说的 套模板 #include <iostream> #include<cstdio> #include<cstring> #inclu ...

  6. 用Redis Desktop Manager连接Redis

    Redis Desktop Manager是Redis图形化管理工具,方便管理人员更方便直观地管理Redis数据. 然而在使用Redis Desktop Manager之前,有几个要素需要注意: 一. ...

  7. 关于JSPatch热修复

    今天和同事聊到JSPatch热修复,我们来看下JSPatch,确实解决了APP升级的痛点. 刚好,已经有这么一个第三方平台实现了后台管理,全套服务(网址是:http://jspatch.com/),先 ...

  8. MJExtension使用

    @字典转模型1基本用法// 将字典转为模型 Person *p = [Person mj_objectWithKeyValues:dict2]; // 将 plist数据转成模型数组 NSArrar ...

  9. Php数据类型之整型详解

    php中支持的数据类型 在php中主要支持8种数据类型.和3中伪类型的一个形式.8种数据类型分为以下三3大类,第一个就是我们的标量类型,标量类型它只能存储单一数据,那第二大类就是我们的复合类型,第三个 ...

  10. div水平居中与垂直居中的方法【摘自美浩工作室官方博客 】

    大家往往在写页面中会遇到不固定宽和高的div如果水平和垂直都居中呢?在写css的时候经常遇到的一个问题,当div没有固定的宽度或者高度的时候,如何才能让div水平或者垂直居中显示.如果div有固定宽度 ...