0%

sqoop配置

首先需要更改sqoop-env.sh

1
2
3
4
5
6
export HADOOP_COMMON_HOME=/usr/local/myself/hadoop-3.3.0
export HADOOP_MAPRED_HOME=/usr/local/myself/hadoop-3.3.0
export HIVE_HOME=/usr/local/myself/apache-hive-3.1.2-bin
export ZOOKEEPER_HOME=/usr/local/myself/apache-zookeeper-3.6.1-bin
export ZOOCFGDIR=/usr/local/myself/apache-zookeeper-3.6.1-bin/conf
export HBASE_HOME=/usr/local/myself/hbase-2.2.7

还需要将mysql的驱动放到lib目录下

阅读全文 »

MySQL执行顺序

1
2
3
4
5
6
7
8
9
10
FROM <left_table>
<join_type> JOIN <right_table>
ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
SELECT
DISTINCT <select_list>
ORDER BY <order_by_condition>
LIMIT <limit_number>
  • from: 需要从哪个数据表检索数据
  • where: 过滤表中数据的条件
  • group by: 如何将上面过滤出的数据分组
  • having: 对上面已经分组的数据进行过滤的条件
  • select: 查看结果集中的哪个列,或列的计算结果
  • order by : 按照什么样的顺序来查看返回的数据

MySQL使用自增主键的原因

主键数据记录本身被存于主索引(一棵B+Tree)的叶子节点上,这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点),如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页;

而如果使用非自增主键,由于每次插入主键的值近似于随机,因此每次新记录都要被插到现有索引页的中间某个位置,此时MySQL不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这增加了很多开销,同时频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑的索引结构,后续不得不通过OPTIMIZE TABLE来重建表并优化填充页面

kafka事务

kafka是存在事务的,而且生产者和消费者都存在事务

Producer事务

为了实现跨分区跨会话的事务,需要引入一个全局唯一的 Transaction ID,并将 Producer获得的PID 和Transaction ID 绑定。这样当Producer 重启后就可以通过正在进行的 Transaction ID 获得原来的 PID。
为了管理 Transaction,Kafka 引入了一个新的组件 Transaction Coordinator。Producer 就是通过和 Transaction Coordinator 交互获得 Transaction ID 对应的任务状态。Transaction Coordinator 还负责将事务所有写入 Kafka 的一个内部 Topic,这样即使整个服务重启,由于事务状态得到保存,进行中的事务状态可以得到恢复,从而继续进行。

Consumer事务

上述事务机制主要是从 Producer 方面考虑,对于 Consumer 而言,事务的保证就会相对较弱,尤其是无法保证 Commit 的信息被精确消费。这是由于 Consumer 可以通过 offset 访问任意信息,而且不同的 Segment File 生命周期不同,同一事务的消息可能会出现重启后被删除的情况

MySQL数据类型

数值类型

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型 大小(字节) 范围(有符号) 范围(无符号) 用途
TINYINT 1 (-128,127) (0,255) 小整数值
SMALLINT 2 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 (-9 223 372 036 854 775 808 ,
9 223 372 036 854 775 807)
(0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 (-3.402 823 466 E+38,
-1.175 494 351 E-38),0,
(1.175 494 351 E-38,
3.402 823 466 351 E+38)
0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
DOUBLE 8 (-1.7976931348623157 E+308,
-2.2250738585072014 E-308),
0,(2.2250738585072014 E-308,1.797 693 134 862 315 7 E+308)
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值
阅读全文 »