索引(index)和管理索引
模式中的一个数据库对象
作用:在数据库中用来加速对表的查询
创建:自动在主键和唯一键上面创建索引
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
ModHeader全名modify header,这是一款可以对HTTP请求header进行修改的插件,其支持添加模式Mod和过滤器Filter。
Mod可以支持对request的header,response的header进行修改,对请求进行重定向redirect等;
Filter支持对特定的URL生效这面的这些Mod
常用函数
1 | ALTER TABLE tb_emp |
1.约束是在表上强制执行的数据检验规则,约束主要用于保证数据库的完整性。
2.当表中数据有相互依赖性时,可以保护相关的数据不被删除。
3.大部分数据库支持下面五类完整性约束:
- NOT NULL非空
- UNIQUE Key唯一值
- PRIMARY KEY主键
- FOREIGN KEY外键
- CHECK检查
4.约束作为数据库对象,存放在系统表中,也有自己的名字
5.创建约束的时机:
-在建表的同时创建
-建表后创建(修改表)
6.有单列约束和多列约束
列级约束直接跟在列后面定义,不再需要指定列名,与列定义之间用空格分开
表级约束通常放在所有的列定义之后定义,要显式指定对哪些列建立列级约束,与列定义之间采用英语逗号,隔开
如果是对多列建联合约束,只能使用表级约束语法
SQL——结构化查询语言(Structured Query Language)
confleunt提供了一些方法,可以将protobuf schema转换成avro schema,用于支持将kafka protobuf序列化的message落盘成avro格式的文件
1 | <repositories> |
定义一个protobuf schema
1 | syntax = "proto3"; |
编译java代码
1 | protoc -I=./ --java_out=./src/main/java ./src/main/proto/other.proto |
得到schema的java代码
confluent schema registry在处理处理protobuf,avro,json格式的数据的时候,会统一先将其转换成connect schema格式的数据,然后再将其写成parquet,avro等具体的文件格式
1 | import com.acme.Other; |
转换的avro schema输出如下
1 | { |
注意:confluent在具体实现的时候,比较严谨,在protobuf的uint32(0 到 2^32 -1)的时候,会统一转换成long(-2^63 ~ 2^63-1),不会出现越界的情况,参考源码
1 | https://github.com/confluentinc/schema-registry/blob/v7.1.1/protobuf-converter/src/main/java/io/confluent/connect/protobuf/ProtobufData.java#L1485 |
转换实现参考源码
1 | https://github.com/confluentinc/schema-registry/blob/v7.1.1/avro-data/src/test/java/io/confluent/connect/avro/AdditionalAvroDataTest.java |
hive client安装文档
1 | https://cwiki.apache.org/confluence/display/Hive/GettingStarted |
hive 配置官方文档
1 | https://cwiki.apache.org/confluence/display/hive/configuration+properties |
hive 配置中文文档
1 | https://www.docs4dev.com/docs/zh/apache-hive/3.1.1/reference/Configuration_Properties.html |
Hive学习笔记——执行计划