
数据库和数据湖
文章平均质量分 72
数据库和数据湖
Bulut0907
大数据、机器学习、编程语言、IT相关技术分享, 喜欢请关注、点赞、收藏哦!
展开
-
Hive的数据定义语言
虽然修改了default数据库的location,但是在default数据库下面创建的表的location还是:hdfs://nnha/user/hive/warehouse/test_tb。表中储存了索引列的值、索引列的值对应文件在HDFS的Path、索引列的值在该文件的position。需要进行分桶,将某一列或某几列的数据,进行Hash取模的方式,将数据随机均匀的发送到各个桶文件。视图中的数据并不会进行实际的储存。创建索引的列称为索引列,通过索引列进行查询时,可以避免全表扫描或全分区扫描。原创 2025-03-24 07:27:26 · 933 阅读 · 0 评论 -
Mysql insert和计算列的使用
某一列的值是通过别的列计算得来的。例如,a列值为1、b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列。CREATE TABLE和ALTER TABLE中都支持增加计算列。使用insert同时插入多条记录时,MySQL会返回一些额外信息,这些信息的含。原创 2025-03-24 07:11:05 · 174 阅读 · 0 评论 -
Mysql数据类型、数据库操作、数据表操作
InnoDB表的DDL支持事务完整性,即DDL操作要么成功要么回滚。DDL操作回滚日志写入到data dictionary数据字典表mysql.innodb_ddl_log(该表是隐藏的表,通过show tables无法看到)中,用于回滚操作。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。清空表数据使用truncate,truncate不支持事务且不能触发trigger。创建表时,int类型会被设置为int(11),这里的11是int类型的显示宽度。tb2表被回滚,并没有删除。原创 2023-06-05 09:20:20 · 606 阅读 · 0 评论 -
Mysql非关联子查询和关联子查询
非关联子查询:子查询只执行一次,然后这个数据结果作为主查询的条。件进行执行,那么这样的子查询叫做非关联子查询。原创 2023-05-29 09:13:39 · 1112 阅读 · 0 评论 -
Mysql聚合函数、group by、having
对于Innodb引擎的表用count(*)、count(1)直接读行数,复杂度是O(n),因为innodb真的要去数一遍。不要使用count(列名)来替代count(*),count(*)是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。MAX()、MIN()、COUNT():适用于所有类型字段,其中COUNT(字段)不会统计字段为NULL的行。:用count(*)、count(1)、count(列名)谁好。:能不能使用count(列名)替换count(*)原创 2023-05-22 09:12:19 · 464 阅读 · 0 评论 -
Mysql单行内置函数大全(数值函数、字符串函数、日期和时间函数、流程控制函数、加密解密函数、信息函数等)
不同DBMS的内置函数相差很大。从实现的功能角度可以分为数值函数、字符串函数、日期和时间函数、流程控制函数、加密与解密函数、获取MySQL信息函数、聚合函数等。而从处理数据的条数可以分为单行函数、聚合函数(分组函数)原创 2023-05-15 09:38:47 · 554 阅读 · 2 评论 -
Mysql多表join查询(笛卡尔积、using、natural join)、union
建议join的表数量不要超过3个;关联字段的数据类型一样;关联字段有索引。原创 2023-05-08 09:12:32 · 579 阅读 · 0 评论 -
Mysql各种运算符(算术运算、比较运算、逻辑运算、位运算)
位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数。mysql的+只表示数值相加,如果是非数值类型,会尝试转换成数值,转换失败就是0。比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL。逻辑运算符的返回结果为1、0或者NULL。原创 2023-05-04 09:01:48 · 1199 阅读 · 0 评论 -
Mysql简介、DCL、规范、表关联关系、版本和工具、自带数据库作用
MySQL是可以定制的,采用了GPL(GNU General Public License协议,可以修改源码来开发自己的MySQL系统MySQL支持大型数据库,支持5000万条记录的数据仓库,64位系统支持最大的表文件为8TB经典的SQL标准是SQL99标准,也叫SQL-3标准。原创 2023-04-24 09:34:52 · 423 阅读 · 0 评论 -
PostgreSQL数据库基本SQL语法
1. 数据库查看数据库postgres=# postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+---------------原创 2021-10-02 06:59:47 · 3206 阅读 · 0 评论 -
centos7安装mysql8.0.31版本
MySQL8.0提供的授权方式采用SHA256基础的密码加密方法。原创 2021-06-21 22:03:00 · 4862 阅读 · 1 评论 -
centos7上mysql 8.0.25版本master-master架构的搭建
目录1 mysql的安装2 master-master架构的配置2.1 编辑/etc/my.cnf2.2 创建slave用户并设置权限2.3 slave连接master,并开启同步2.4 测试2.5 在一个mysql实例运行一段时间之后在建立master-master架构的思考1 mysql的安装分别在canal1和canal2两台服务器进行mysql的安装,安装的版本为8.0.25安装的方式可以参考我的博客centos7上安装mysql8.0.252 master-master架构的配置2.1原创 2021-06-24 15:39:28 · 2798 阅读 · 0 评论 -
centos7上安装时序数据库influxdb 1.1.0版本
目录1. 下载2. 安装3. 修改默认端口4. 启动5. 检验1. 下载由于时间隔的有点远,官网都没有这个版本了,所以我们从百度云盘进行下载,下载地址为influxdb下载2. 安装sudo rpm -ivh influxdb-1.1.0.x86_64.rpm3. 修改默认端口默认的tcp端口为8088,容易与其它应用产生冲突,如下图所示:所以我们需要修改此端口,修改/etc/influxdb/influxdb.conf, 添加以下内容到文件前面bind-address = ":80原创 2021-06-21 15:26:49 · 3031 阅读 · 0 评论 -
Centos7上安装Greenplum6.18.1集群
目录1. 服务器分布情况2. 关闭selinux和防火墙(3台)3. 设置linux系统参数(3台)3.1 修改/etc/sysctl.conf3.2 修改/etc/security/limits.conf4. 创建gpadmin用户(3台)5. 安装greenplum(3台)5.1 下载上传5.2 安装rpm文件5.3 激活greenplum的环境变量5.4 创建master和segment的数据储存目录6. 初始化greenplum(3台)6.1 创建segment的hosts文件6.2 创建gpini原创 2022-05-17 18:47:37 · 688 阅读 · 0 评论 -
Greenplum通过JDBC进行连接、Python连接Greenplum、copy装载大量数据
目录1. Greenplum通过JDBC进行连接2. python连接greenplum使用copy1. Greenplum通过JDBC进行连接和其它的JDBC类似,只是连接的URL、driver、jar包不一样而已URL:jdbc:pivotal:greenplum://192.168.8.111:5432;DatabaseName=dataqualitysystemdriver:com.pivotal.jdbc.GreenplumDriverjar包的下载方式如下:从greenplum的原创 2022-05-17 18:48:43 · 2334 阅读 · 0 评论 -
TiDB之TiFlash介绍和使用
TiFlash主要包含存储引擎组件、tiflash proxy组件、pd buddy组件,其中tiflash proxy主要处理Multi-Raft协议通信的相关工作,pd buddy负责与PD协同工作,将TiKV数据按表同步到TiFlashTiFlash默认不同步数据,且同步粒度为表粒度以region为单位进行数据复制和分列,跟随TiKV中的Leader副本同时进行分裂与合并,只要TiKV中数据不丢失,就可以随时恢复TiFlash的副本。原创 2022-05-18 10:48:45 · 6500 阅读 · 2 评论 -
Centos7上部署TiDB 6.5在线HTAP平台
本文章同样适用于TIDB 5.2.2版本的部署。原创 2021-12-07 10:33:29 · 3533 阅读 · 0 评论 -
Apache druid的ingestion spec数据插入规范
目录1. 测试数据2. 定义dataSchema2.1 指定数据源名称2.2 指定__time时间戳2.3 定义Rollup相关2.3.1 "rollup" : true2.3.2 "rollup" : false2.4 定义granularitySpec3. 定义task type4. 定义数据输入源5. 其它优化参数6. 提交任务7. 查询结果数据1. 测试数据我们要插入的测试是一批网络流数据,如下所示:{"ts":"2018-01-01T01:01:35Z","srcIP":"1.1.1.1",原创 2022-06-21 09:35:58 · 563 阅读 · 0 评论 -
Apache Druid的数据删除
目录1. 加载测试数据2. 永久删除数据2.1 按时间interval进行标记2.2 按segment ID进行标记2.3 执行kill任务1. 加载测试数据从quickstart/tutorial/wikiticker-2015-09-12-sampled.json.gz数据文件读取wikipedia数据,创建一个名称为deletion-tutorial的数据源deletion-index.json内容如下,创建的segment为小时粒度[root@bigdata001 apache-druid-原创 2022-06-22 09:27:32 · 1113 阅读 · 0 评论 -
Apache Druid的介绍和0.22.1版本集群部署
目录1. Apache Druid的介绍2. 部署规划3. 安装要求4. 下载解压(bigdata001上)5. 修改配置(bigdata001上)5.1 Druid通用配置5.2 修改Data服务配置5.3 修改Query服务6. 分发Druid目录(bigdata001上)7. 启动(在所有服务器上)7.1 一台服务器,启动多个服务设置7.2 启动master服务7.3 启动data服务7.4 启动query服务8. 查看Druid控制台1. Apache Druid的介绍Apache Druid适原创 2022-06-20 09:18:02 · 1844 阅读 · 0 评论 -
Apache Druid加载本地数据
目录1. 加载数据的原理2. 使用Data Loader来加载数据3. 使用spec加载数据(通过Web控制台)4. 使用spec加载数据(通过命令行)1. 加载数据的原理数据的加载需要向Overlord提交ingestion spec。ingestion spec其实就是一个json格式的元数据,生成方式有两种:可以手动编写通过Druid Web控制台内置的data loader加载少量数据,并配置参数,来帮助我们生成2. 使用Data Loader来加载数据操作步骤如下:点击Appl原创 2022-06-20 09:20:53 · 640 阅读 · 0 评论 -
Apache Druid的SQL查询
目录1. 通过DApache Druid还支持原生的Json格式查询,这里我们只讲解SQL查询。Druid的数据查询底层是通过发送HTTP请求1. 通过D查询2015年9月12日被编辑最多的10个维基百科页面原创 2022-06-21 09:37:09 · 974 阅读 · 0 评论 -
Apache Druid的Rollup功能
目录1. 加载示例数据2. 查询数据源数据1. 加载示例数据将quickstart/tutorial/rollup-data.json读取数据,创建一个名称为rollup-tutorial的数据源rollup-data.json的数据是一个网络流相关的数据,数据内容如下[root@bigdata001 quickstart]# cd ..[root@bigdata001 apache-druid-0.22.1]# cat quickstart/tutorial/rollup-data.json原创 2022-06-22 09:22:56 · 396 阅读 · 0 评论 -
Apache Kudu的Transaction Semantics事务语义
目录1. 向单个tablet写入数据2. 向多个tablet事务写入数据3. Scan的可选参数1. 向单个tablet写入数据write operation的定义:指对一个tablet进行insert或update或delete。在完成后由系统自动进行commit。一个tablet上的一个write operation完成后,才能进行下一个write operationKudu采用MVCC多版本并发控制和Raft一致性算法,write流程如下:tablet的leader获取待change的row原创 2022-06-28 08:47:13 · 397 阅读 · 0 评论 -
Apache Kudu 1.15.0的分布式集群部署
目录1. 部署规划2. 部署要求2.1 硬件要求2.2 软件要求3. 从源码编译3.1 安装Red Hat Developer Toolset3.2 安装依赖包3.3 安装memkind(可选)3.4 编译documentation的依赖包(可选)3.5 编译Kudu1. 部署规划服务服务器备注masterkudu1、kudu2、kudu3tablet serverkudu1、kudu2、kudu32. 部署要求2.1 硬件要求必须是Centos6.4之后原创 2022-06-27 08:58:15 · 968 阅读 · 0 评论 -
Apache Kudu的Schema设计(column数据类型)
目录1. 表Schema介绍2. Column设计2.1 支持的列数据类型3. Primary key设计3.1 Primary Key Index4. Partitioning分区4.1 range分区4.2 hash分区5. Schema Alterations(schema变更)1. 表Schema介绍Kudu的表是一种结构化数据模型,包含3个方面:分区设计、primary key设计、column设计2. Column设计2.1 支持的列数据类型支持的列数据类型如下:boolean8原创 2022-06-28 08:49:10 · 540 阅读 · 0 评论 -
Apache Kudu的Java/Scala API操作
目录1. 使用Java/Scala API进行表创建、插入数据、alter表、scan表、删除表1.1 pom.xml1.2 Kudu_test程序1.3 运行程序查看结果1. 使用Java/Scala API进行表创建、插入数据、alter表、scan表、删除表1.1 pom.xml添加如下依赖 <dependency> <groupId>org.apache.kudu</groupId> <a原创 2022-06-27 08:59:46 · 309 阅读 · 0 评论 -
Apache Kudu架构
目录1. Kudu介绍1. Kudu介绍Kudu采用Raft一致性算法,当写入一条数据,被至少两个replica保存,就可以让客户端访问该条数据。但所有的replica的数据会最终一致原创 2022-05-25 09:14:14 · 788 阅读 · 0 评论 -
Hive的架构、工作原理、数据类型
目录1. Hive架构2. Hive工作原理3. Hive数据类型支持多表插入1. Hive架构当用户使用JDBC/ODBC操作Hive时,先使用hiveserver2的thrift跨语言服务将用户使用的语言转换成Hive的语言,再发送给Hive Driver生成执行计划,先将执行计划保存到HDFS,再发送给执行引擎进行执行用户接口:Hive shell command line interface值Hive自带的命令行接口;Hive Client指指客户端工具,如Beeline远程调用客户原创 2022-05-20 09:40:03 · 475 阅读 · 0 评论 -
在Centos7上进行Hive 3.1.2集群安装
3. 配置conf3.1 配置Hive运行环境: hive-env.sh复制hive-env.sh修改内容如下:添加内容如下:3.2 配置Hive相关参数: hive-site.xml文件内容如下:4. 下载mysql-connector-java-8.0.25.jar到lib目录5. 配置环境变量向/root/.bashrc添加如下内容执行使环境变量生效初始化Mysql元数据7. 解决数据库、表、分区、索引的注释中文乱码登录Hive的Mysql元数据库,将元数据表字段的lati原创 2022-07-11 09:16:46 · 675 阅读 · 0 评论 -
使用Hive3.1.2 + Iceberg0.13.1构建数据湖
目录1. Hive开启Iceberg的支持2. Catalog管理3. 表的创建和删除1. Hive开启Iceberg的支持Hive可以读写Iceberg的表添加依赖jar包[root@hive1 ~]# [root@hive1 ~]# wget https://repo.maven.apache.org/maven2/org/apache/iceberg/iceberg-hive-runtime/0.13.1/iceberg-hive-runtime-0.13.1.jar[root@hive1原创 2022-04-11 09:35:05 · 3212 阅读 · 0 评论