Technical Summary —— Database Usage
近期致力于总结科研或者工作中用到的主要技术栈,从技术原理到常用语法,这次查缺补漏当作我的小百科。主要技术包括:
- ✅数据库常用:MySQL, Hive SQL, Spark SQL
- ✅大数据处理常用:Pyspark, Pandas
- ⚪ 图像处理常用:OpenCV, Matplotlib
- ⚪ 机器学习常用:SciPy, Sklearn
- ✅ 深度学习常用:Pytorch, Numpy
- ✅ 常用命令: Shell, Git, Vim
以下整理错误或者缺少的部分欢迎指正!!!
数据库常用:MySQL, HQL, Spark SQL
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
性能对比
MySQL | Hive SQL | Spark SQL | |
---|---|---|---|
数据存储系统 | 关系型数据库 | 基于Hadoop的数据仓库系统 | 在Spark上构建的分布式计算引擎 |
数据处理能力 | 小规模结构化数据 | 大规模非结构化和半结构化数据 | 大规模非结构化和半结构化数据 |
执行引擎 | 传统查询优化器和Executor | 将查询转换为MapReduce | Spark引擎 |
分布式存储和处理 | 否 | 是 | 是 |
实时查询 | 是 | 否(只能离线分析) | 是 |
可扩展性 | 低 | 高 | 高 |
优势 | 管理索引、表分区 | 表分区、分桶、UDF/UDAF | 提供DF接口 |
更详细的介绍:
常用语法
MySQL | Hive SQL | Spark SQL | |
---|---|---|---|
关系 | 适用大部分MySQL语法 | 兼容hive | |
DDL(定义) | CREATE DROP ALTER | ✓ | ✓ |
DML(操作) | INSERT DELETE UPDATE | ✓ | ✓ |
DQL(查询) | SELECT WHERE | ✓ | ✓ |
DCL(控制) | GRANT REVOKE | ✓ | ✓ |
函数 | nvl(expr1, expr2) |
ifnull(ex pr1, expr2) |
同hive |
merge into | 只能使用update/delete/insert代替 | ✓ | ✓ |
join on关联条件支持不等值连接 | × | × | ✓ |
MYSQL 常用
sql
1 | CREATE/DROP DATABASE/TABLE IF NOT EXISTS db/tab; -- 创建/删除数据库/表 |
hive常用命令
shell
1 | hive # hive启动! |
分区表常用
sql
1 | -- 创建分区表常见写法 |
高级操作merge into
sql
1 | MERGE INTO table_name alias1 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
Related Issues not found
Please contact @xfliu1998 to initialize the comment