对于INNODB,主键就是聚集索引,如果没有主键定义,则第一个唯一非空索引被作为聚集索引.
如果没有主键也没有合适的唯一索引,那么innodb内部会生成一个隐藏的主键作为聚集索引,
这个隐藏的主键类似一个自增的id(int).

删除与重新添加主键
alter table tbname drop primary key;

alter table tbname add primary key(col1,col2,col3);

CREATE INDEX IDX_METE_BASE_AREA_STATION_CABINET ON CMS.T_CABINET_ELECTRICITY_HH_HIVE (
BASE_NAME ASC,
AREA_NAME ASC,
STATION_NAME ASC,
CABINET_NAME ASC
);

SELECT DISTINCT DEVICE_NAME ,REGEXP_EXTRACT(DEVICE_NAME,"-(.*)",0)
FROM T_METE_CONFIG
WHERE LSC_ID IN (30,31)
AND DEVICE_TYPE_NAME='UPS配电'
AND STATION_NAME LIKE '%数据机房%'
ORDER BY DEVICE_NAME;

SELECT REGEXP_EXTRACT('ASDFSADF-JOB','-([A-Z])',0) FROM CMS.DUAL LIMIT 1;

复合分区示例,
先以时间粒度天为例进行外分区,然后根据地域id进行分区,
mysql仅支持range和list的子分区,而且子分区只能是hash或key.

CREATE TABLE t_cabinet_electricity_hh_hive2
(
   base_id int NOT NULL,
   base_name varchar(20),
   lsc_name varchar(255),
   area_id bigint,
   area_name varchar(255),
   station_id int NOT NULL,
   station_name varchar(255),
   device_type_id varchar(255),
   device_type_name varchar(255),
   device_id varchar(255) NOT NULL,
   device_name varchar(255),
   mete_id int NOT NULL,
   mete_name varchar(255),
   max_report_time varchar(20),
   max_mete_value double,
   min_report_time varchar(20),
   min_mete_value double,
   avg_mete_value double,
   hour_sum_value double,
   hour_times int,
   dt_hh varchar(10) NOT NULL,
   hour_last_value double,
   cabinet_name varchar(255),
   dt varchar(20) NOT NULL,
   lsc_id int NOT NULL,
   PRIMARY KEY (dt,dt_hh,base_id,lsc_id,mete_id,device_id,station_id,mete_name)
)
PARTITION BY RANGE(TO_DAYS(DT))
SUBPARTITION BY HASH(LSC_ID)
SUBPARTITIONS 6
(
PARTITION P0  VALUES LESS THAN (TO_DAYS('20170810')),
PARTITION P1  VALUES LESS THAN (TO_DAYS('20170811')),
PARTITION P2  VALUES LESS THAN (TO_DAYS('20170812')),
PARTITION P3  VALUES LESS THAN (TO_DAYS('20170813')),
PARTITION P4  VALUES LESS THAN (TO_DAYS('20170814')),
PARTITION P5  VALUES LESS THAN (TO_DAYS('20170815')),
PARTITION P6  VALUES LESS THAN (TO_DAYS('20170816')),
PARTITION P7  VALUES LESS THAN (TO_DAYS('20170817')),
PARTITION P8  VALUES LESS THAN (TO_DAYS('20170818')),
PARTITION P9  VALUES LESS THAN (TO_DAYS('20170819')),
PARTITION P10  VALUES LESS THAN (TO_DAYS('20170820'))
)
;

ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P11  VALUES LESS THAN (TO_DAYS('20170821')));         
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P12  VALUES LESS THAN (TO_DAYS('20170822')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P13  VALUES LESS THAN (TO_DAYS('20170823')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P14  VALUES LESS THAN (TO_DAYS('20170824')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P15  VALUES LESS THAN (TO_DAYS('20170825')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P16  VALUES LESS THAN (TO_DAYS('20170826')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P17  VALUES LESS THAN (TO_DAYS('20170827')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P18  VALUES LESS THAN (TO_DAYS('20170828')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P19  VALUES LESS THAN (TO_DAYS('20170829')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P20  VALUES LESS THAN (TO_DAYS('20170830')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P21  VALUES LESS THAN (TO_DAYS('20170831')));
ALTER TABLE t_cabinet_electricity_hh_hive2 ADD PARTITION (PARTITION P22  VALUES LESS THAN (TO_DAYS('20170901')));
        
--查看分区信息
select
partition_name,table_rows
from information_schema.partitions where table_name='xxx';
 
 
问题,hive表中的日期类型 yyyy-mm-dd 到mysql中对应的date字段,但是无法导入成功
其实看sqoop转换的java代码,可以看出这是sqoop的一个bug.,
里面有类似 (java.sql.Date)value
转换失败为空,这样进入我含有非空约束的字段就失败了.
原因是日期格式是不确定的,所以直接转有问题,
建议是直接设置临时表的字段为varchar,后面带做处理.

sqoop eval --connect jdbc:mysql://xx:3306/cms --username root --password xxx \
--query "truncate table xx.stage_t_xx"

sqoop export --connect jdbc:mysql://xxx:3306/xxx\
--username root --password xxx --table stage_t_xxe \
--hcatalog-database xxx--hcatalog-table stage_txxx

sqoop eval --connect jdbc:mysql://xxx:3306/cms --username root --password xxx \
--query "insert into xxx.t_xxx_xx_hh_xx select * from xxx.stage_t_xx_xx_hh_hive"

mysql调优小记的更多相关文章

  1. MySQL 调优/优化的 100 个建议

    MySQL 调优/优化的 100 个建议   MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...

  2. MySQL 调优基础(一) CPU与进程

    一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层 ...

  3. MySQL调优系列基础篇

    前言 有一段时间没有写博客了,整天都在忙,上班,录制课程,恰巧最近一段时间比较清闲,打算弄弄MYSQL数据库. 关于MySQL数据库,这里就不做过多的介绍,开源.免费等特性深受各个互联网行业喜爱,尤其 ...

  4. mysql调优 基础

    MySQL调优可以从几个方面来做: 1. 架构层:做从库,实现读写分离: 2.系统层次:增加内存:给磁盘做raid0或者raid5以增加磁盘的读写速度:可以重新挂载磁盘,并加上noatime参数,这样 ...

  5. mysql调优最大连接数

    一.mysql调优 1.1 报错: Mysql: error 1040: Too many connections 1.2 原因: 1.访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器 ...

  6. MySQL调优 —— Using temporary

      DBA发来一个线上慢查询问题. SQL例如以下(为突出重点省略部分内容): select distinct article0_.id, 等字段 from article_table article ...

  7. 数据库MySQL调优实战经验总结<转>

    数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...

  8. MySQL调优 优化需要考虑哪些方面

    MySQL调优 优化需要考虑哪些方面   优化目标与方向定位 总体目标:使得响应时间更快,吞吐量更大. (throughout --- 吞吐量:单位时间内处理事务的数量) 如何找到需要优化的地方 使用 ...

  9. MySQL调优系列_日志分析

    前言 本篇主要总结一下MySQL数据库的几种日志,用于日常维护过程中问题解决和性能优化等,稍显基础,日常积累之用. 文章的部分内容会将MySQL数据库和SQL Server数据库部分内容做一个对比,非 ...

随机推荐

  1. InstallShield Build Error -1014: Cannot rename directory <PATH> to <PATH>\folder.Bak.

    InstallSheild执行Build结果错误: 错误详细信息: Cannot rename directory <PATH> to <PATH>\folder.Bak. W ...

  2. Hadoop单机安装配置过程:

    1. 首先安装JDK,必须是sun公司的jdk,最好1.6版本以上. 最后java –version 查看成功与否. 注意配置/etc/profile文件,在其后面加上下面几句: export JAV ...

  3. iOS 8出色的跨应用通信效果:解读Action扩展

    本文转载至 http://mobile.51cto.com/iphone-464809.htm 用程序扩展最初于WWDC 2014大会上正式亮相,这是一种将iOS应用程序功能扩展至系统其它组成部分的途 ...

  4. LA3485 Bridge[(辛普森自适应)微积分]

    做此题完全是为了练积分. [普通求导版] Select Code #include<cstdio> #include<cmath> using namespace std; t ...

  5. 【BZOJ2095】[Poi2010]Bridges 动态加边网络流

    [BZOJ2095][Poi2010]Bridges Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个 ...

  6. Code Forces 26C Dijkstra?

    C. Dijkstra? time limit per test 1 second memory limit per test 64 megabytes input standard input ou ...

  7. Oracle Schema Objects——Tables——Oracle Data Types

    Oracle Schema Objects Oracle Data Types 数据类型 Data Type Description NUMBER(P,S) Number value having a ...

  8. poj3735—Training little cats(特殊操作转化为矩阵操作)

    题目链接:http://poj.org/problem?id=3735 题目意思: 调教猫咪:有n只饥渴的猫咪,现有一组羞耻连续操作,由k个操作组成,全部选自: 1. g i 给第i只猫咪一颗花生 2 ...

  9. 8个Javascript小技巧

    1. 使用 + 字符可以转换成数字 比如要把一个字符串数字转换成数字,你可能会这样做: var one = '1'; var two = '2'; var numberOne = Number(one ...

  10. Design and Architectural Goals

    w动态实例化-轻量级,组件间依赖程度.专一性-复用性.灵活性. https://www.codeigniter.com/userguide3/overview/goals.html http://co ...