Hive改表结构的两个坑|避坑指南】的更多相关文章

Hive在大数据中可能是数据工程师使用的最多的组件,常见的数据仓库一般都是基于Hive搭建的,在使用Hive时候,遇到了两个奇怪的现象,今天给大家聊一下,以后遇到此类问题知道如何避坑! 坑一:改变字段类型后更新数据不成功 关于hive插入数据的一个小坑,今天插入一个表中数据,插入时写的是常数,比如0.01 ,表中的字段也是DECIMAL(5,2),按照常理插入的应该是0.01,但是插入后查询是0,为甚! 遇到问题,咱也不能退缩!就分析呀,看语句没问题啊!还是上网查查有没有坑友.查了一圈发现还是观…
有一个表有上千W数据, 用什么方法给这个表加一个字段最快?1. alert2. 建一个表和第一个表一样,只是多了要加的字段,然后用多个INSERT INTO SELECT语句limit写入3. 就是导出多个文件,然后用loadfile4. 其它? 试过2.5KW数据, alert要156m.INSERT INTO SELECT 100W要5m46s 两个工具选择: http://www.percona.com/software/percona-toolkit http://www.percona…
#!/bin/bash source /etc/profile runlog='/tmp/zewei/check_schema_log' hive_database_schema=/tmp/hive_database_schema/hive/ mysql_database_schema=/tmp/hive_database_schema/mysql/ > $runlog #每天下午一点删除现有的表结构缓存文件. #防止hive有变动. ] then rm -rf /tmp/hive_databa…
### 读取hive的表结构,生成带comment的视图建表语句 # 读取配置文件中的表并进行遍历 grep -v '^#' tablesFile|while read tableName do status= viewName=$(echo ${tableName}|sed "s/^dwd_/dwd_cms_out_l_/i"|sed "s/^dws_/dws_cms_out_l_/i"|sed "s/^ads_/ads_cms_out_l_/i&quo…
https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html 不锁表更改数据库表结构 pt-online-schema-change --user=root --host=127.0.0.1 --ask-pass --execute --statistics --charset=utf8 --recursion-method=none  --alter 'ADD COLUMN `daily_type` S…
1.查看数据库/表 show databases/tables; 2.切换数据库 use database_name; 3.查看表结构 desc table_name; 4.查看表详细属性 desc formatted test;…
HBase修改表结构 package com.hbase.HBaseAdmin; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTab…
一.表 更改表名:ALTER TABLE table_name RENAME TO new_table_name 增加表的元数据信息:ALTER TABLE table_name SET TBLPROPERTIES table_properties table_properties::[property_name = property_value…..] 用户可以用这个命令向表中增加metadata 二.列 表添加一列 :ALTER TABLE pokes ADD COLUMNS (new_co…
添加列  add columns alter table table_name add columns (id int comment '主键ID' ) ; 默认在表所有字段之后,分区字段之前. 替换列 replace columns ,会替换所有列,慎用! alter table table_name replace columns (id int comment '主键ID' ) ; 修改字段名称.类型.注释 change 1. 修改字段注释 alter table table_name c…
今天总结下,Hive metastore的结构设计.什么是metadata呢,对于它的描述,可以理解为数据的数据,主要是描述数据的属性的信息.它是用来支持如存储位置.历史数据.资源查找.文件记录等功能.元数据算是一种电子式目录.为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的. 那么我们从hive metastore的表结构设计开始: 看到后,是不是有一种想死的冲动?没错,我也想死,但是我们可以一点一点的看,也会有理解错误,但这都是在我们通向精通的路途之上,不…
drop table dw.fct_so;create table dw.fct_so(so_id bigint comment '订单ID',parent_so_id bigint comment '父订单ID (如果未拆单,则等于so_id)',order_code string comment '订单编码',order_amt float comment '订单金额(产品总额+运费)',actl_order_amt float comment '实付金额',actl_order_amt_p…
原文地址:http://www.aboutyun.com/forum.PHP?mod=viewthread&tid=8590&highlight=Hive 问题导读:1.如何查看hive表结构?2.如何查看表结构信息?3.如何查看分区信息?4.哪个命令可以模糊搜索表? 1.hive模糊搜索表  show tables like '*name*'; 2.查看表结构信息  desc formatted table_name;  desc table_name; 3.查看分区信息  show p…
转自网友的,主要是自己备份下 有时候不记得! 问题导读:1.如何查看hive表结构?2.如何查看表结构信息?3.如何查看分区信息?4.哪个命令可以模糊搜索表 1.hive模糊搜索表 show tables like '*name*'; 2.查看表结构信息  desc formatted table_name;  desc table_name; 3.查看分区信息  show partitions table_name; 4.根据分区查询数据  select table_coulm from ta…
hive复制表结构 CREATE TABLE new_table LIKE old_table; 例:创建一个和stg_job表一样表结构的s_job表 create table s_job like stg_job;…
建表 先讲一下常规建表: CREATE TABLE testCreate ( id ) NOT NULL auto_increment, time ) NOT NULL, type ) NOT NULL, name ) default null, ) NOT NULL, PRIMARY KEY(id), index(id), index(type) )ENGINE=INNODB DEFAULT CHARSET=utf8; 设置主键.自增.默认值及不太常见的将索引放在建表的操作中,下面要提到的是从…
第一步:pom配置环境 先不要管包是做什么的 总之必须要有 否则进坑 <!--避坑包--> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency> <!--解析html包--> <…
在使用Hive的过程中,复制表结构和数据是很常用的操作,本文介绍两种复制表结构和数据的方法. 1.复制非分区表表结构和数据 Hive集群中原本有一张bigdata17_old表,通过下面的SQL语句可以将bigdata17_old的表结构和数据复制到bigdata17_new表: CREATE TABLE bigdata17_new AS SELECT * FROM bigdata17_old; 如果是分区表,则必须使用like关键字复制表结构,包括分区,然后用insert语句将老表的数据插入新…
之前遇到过的坑,通过beeline连接spark thirft server,当在Hive进行表结构修改,如replace/add/change columns后,表结构没有变化,还是旧的表结构,导致无法验证数据. 操作步骤如下: -- 1.create table -- hive/beeline execute create table test_table(id int); -- 2.check metadata in beeline desc test_table; -- 3. add c…
需求来源:一个线上系统,一个开发系统,现在要把开发系统更新到线上,但是开发系统的数据库结构与线上的略有差异,所以需要找出两个数据库的表结构差异. 数据库表结构的差异 注:操作均在Linux系统下完成 数据库表结构的差异 1.导出两个数据库的表结构 数据库表结构的差异 view source 1 cd mysql/bin 2 ./mysqldump -uroot -p -d DB1>/home/leo/db1.sql 3 ./mysqldump -uroot -p -d DB2>/home/le…
查看hive中action_data_myisam表中的数据.表结构及所在路径 1.客户端进入hive环境:hive 2.查看表数据,鉴于数据量大,这里只显示前五条:select * from action_data_myisam limit 5; 3.查看表结构:desc action_data_myisam; 4.查看此表所在路径:describe extended action_data_myisam; 图1针对1.2.3步 图2 针对第4步 end!…
hive外部表删除遇到的一个坑 操作步骤 创建某个表(create external table xxx location xxx) 插入数据(insert xxx select xxx from xxx) 删除表(drop table xxx) 重新创建 插入数据 查询数据 现象 查询数据发现部分第一次插入的数据 查询数据量发现大于第二次插入的数量 原因 与其说是坑,不如说是自己忽略了一点: 插入的是外部表,当drop表之后,数据并没有删除 第二次创建表location指向的还是原来的位置 也…
Sqoop将MySQL表结构同步到hive sqoop create-hive-table --connect jdbc:mysql://localhost:3306/sqooptest --username root --password 123qwe --table sqoop_job --hive-table sqoop_job --fields-terminated-by , orc格式的 sqoop import --connect jdbc:mysql://localhost:330…
我使用的是一款EZDML的数据库表结构制作设计工具 最开始在数据库创建数据库名为personalmall,基字符集为默认,数据库排序规则也是默认,创建完成之后 去EZDML生成SQL 点击执行sql 报错了 看看sql语句 -- tb_sellercreate table  `tb_seller`(       `Id`              INTEGER(20) auto_increment primary key not null comment '主键id',       `sell…
一.如果两个数据库在同一台服务器上 1.复制表结构和数据:SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA 2.仅仅复制表结构:SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA WHERE 1=2   二.如果两个数据库在不同的服务器上 分为导出和导入两种,都需要先连接远程数据库,再进行操作.如何连接远程数据库? 在连接远程数据库之前,需要先打开Ad H…
若依(RuoYI)代码生成树表结构的那些坑 相信许多做后端开发的同学,一定用过若依这款框架,这款框架易上手,适合用来做后台管理系统,但是其中也存在一些坑,稍不注意就会中招(大佬可以忽略...) 今天,我们说的是若依的代码生成:树结构表.话不多说,直接看图说话: 1.项目正常运行,成功登录之后,按照图上步骤操作. 2.基本信息.字段信息设置依照自己的项目需求进行设置,这里主要介绍生成信息的设置. 友情提示:其他信息设置的三个字段,必须与数据表中一一对应(可以参考我的截图) 3.将生成的代码放入项目…
1.复制表结构及数据到新表CREATE TABLE 新表SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除.不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错.  2.只复制表结构到新表CREATE TABLE 新表SELECT * FROM 旧表WHERE 1=2或CREA…
zabbix数据库表结构的重要性 想理解zabbix的前端代码.做深入的二次开发,甚至的调优,那就不能不了解数据库的表结构了. 我们这里采用的zabbix1.8.mysql,所以简单的说下我们mysql这边的表结构,其他环境不保证正确. mysql> show tables; +-----------------------+ | Tables_in_zabbix | +-----------------------+ | acknowledges | | actions | | alerts…
优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段.降低 CPU 计算除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了.order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算).当我们的 IO 优化做到一定阶段之后…
MySQL复制表结构 表数据 1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除.不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错. 2.只复制表结构到新表CREATE TABLE 新表 SELECT * FROM…
hive内部表.外部表区别自不用说,可实际用的时候还是要小心. Hive的数据分为表数据和元数据,表数据是Hive中表格(table)具有的数据:而元数据是用来存储表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等.下面分别来介绍. 一.Hive的数据存储 在让你真正明白什么是hive 博文中我们提到Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中.Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告…