数据库及存储技术
文章平均质量分 74
数据库相关使用中的总结
坚持是一种态度
男,研究生学历,中国科大硕士,高级软件工程师,作为 大数据分析/架构师/Java开发/运维 岗位角色进行工作。喜欢读书、听音乐、看电影和看动漫,热爱生活,热爱学习。
展开
-
Doris:数组数据类型array使用介绍
【代码】Doris:数组数据类型array使用介绍。原创 2024-03-15 13:20:52 · 2063 阅读 · 0 评论 -
Doris:使用表函数explode实现array字段列转行
一句话总结:Doris宽表怎么转成高表,就是借助Lateral view。原创 2024-03-15 13:18:39 · 2245 阅读 · 3 评论 -
flyway使用配置参数和注意事项介绍
我的flyway的在spring boot应用里的application.yml配置spring:hikari:flyway:enabled:默认true,是否启用flyway,设置为true,flyway才会生效locations:默认,迁移脚本的位置schemas:由 Flyway 管理的schema的名称(区分大小写)encoding:默认UTF_8,SQL 迁移的编码table:默认,Flyway 将使用的架构历史表的名称。sqlMigrationPrefix:默认V。原创 2024-01-26 19:23:39 · 2236 阅读 · 3 评论 -
JPA查询PostgreSQL行排序问题
JPA(Java Persistence API)是一种用于管理Java应用程序中持久化数据的API。它为开发人员提供了一种方便的方法来在数据库中存储、检索和管理对象。在使用JPA的过程中,开发人员经常需要执行各种类型的查询来检索数据。JPQL(Java Persistence Query Language)查询:JPQL是一种面向对象的查询语言,类似于SQL,但是针对实体对象进行查询。它使用实体类和其属性名称而不是表名和列名来执行查询。原创 2024-01-13 16:33:23 · 1011 阅读 · 0 评论 -
版本化数据库管理工具Flyway介绍和Spring Boot集成使用
Flyway 是一个版本化数据库管理工具,用于跟踪、管理和应用数据库的变化。Flyway 通过版本控制可以帮助你确保所有人都在相同版本的数据库上工作,这有利于常规的开发和部署管道。使用Flyway时,务必要记住数据库迁移和修改是一个严肃的任务,一旦迁移到生产环境,就会直接影响数据的完整性和应用程序的运行。因此,通常建议首先在开发和测试环境中执行和验证数据库迁移。完整、系统地学习和实施Flyway,可以极大地提升数据库管理的效率和安全性,尤其是在多人合作和自动部署流程中。命令查看迁移的历史和当前状态。原创 2023-12-21 17:57:46 · 916 阅读 · 0 评论 -
PostgreSQL数据库表字段删除造成的报错
最后总结下,前端页面的查询条件,带着字段,而这个字段在服务端被删除,导致了这次报错对于实体类与数据库表,当一个字段在表里有,实体类没有时,并不会造成什么错误,只不过是冗余了一个字段如果一个字段实体类有,而数据库表里没有,那就不行了,使用到这个表的代码,增删改查都可能会报错对于实体类变动和数据库表变动,我们要做好记录,做好对应的代码修改原创 2023-07-29 20:50:47 · 476 阅读 · 0 评论 -
ClickHouse修改和删除操作
ClickHouse是由俄罗斯的Yandex公司开发的一款快速、可扩展的列式数据库管理系统。它专门针对OLAP场景设计,在海量数据分析和查询方面具有出色的性能表现,同时还能支持实时数据插入和更新。ClickHouse采用了面向列的存储方式,具有较高的压缩比和查询速度。它支持SQL语言,并提供了一系列丰富的函数库,可满足各种复杂的数据分析需求。clickhouse对数据删除和更新有一定支持,但不推荐使用SQL直接更新原创 2023-07-23 22:04:16 · 3208 阅读 · 1 评论 -
clickhouse数据库里聚合函数any的用法
ClickHouse的anyHeavy函数,返回一个频繁出现的元素。column-字段名称选择一个频繁出现的值,使用算法如果某个值在查询的每个执行线程中出现的情况超过一半,则返回此值通常情况下,结果是不确定的。查询实例。原创 2023-07-23 12:04:54 · 2227 阅读 · 0 评论 -
使用clickhouse的ORDER BY WITH FILL方法插值补全缺失的值
使用clickhouse的ORDER BY WITH FILL方法插值补全缺失的值。WITH FILL修饰符配合ORDER BY使用,就是为了按照指定顺序填值,有值跳过,无值插入可以在之后用可选的和STEP expr参数来设置WITH FILL修饰符from to确定补值的范围,step是步进,没有则使用默认值所有expr列的缺失值将被顺序填充,而其他列将被填充为默认值使用以下语法填充多列,在ORDER BY部分的每个字段名称后添加带有可选参数的WITH FILL修饰符。原创 2023-06-23 17:44:57 · 1849 阅读 · 0 评论 -
ClickHouse的case when用法,及利用它实现按条件统计数量
clickhouse case when用法,与SQL标准用法一致。case when语句也可以嵌套使用,可以根据实际需求编写更为复杂的条件分支逻辑。原创 2023-05-17 23:01:59 · 5632 阅读 · 0 评论 -
PostgreSQL数据库:以任意时间间隔聚合查询(group by)
【代码】PostgreSQL数据库:以任意时间间隔聚合查询(group by)原创 2023-04-30 13:46:56 · 3787 阅读 · 0 评论 -
docker运行PostgreSQL数据库维护,执行脚本备份数据库与更新表结构
PostgreSQL是一种开源的关系型数据库管理系统,它是一个功能强大、高度可定制化和支持复杂应用的数据库。它支持广泛的数据类型,包括数值、文字、二进制、地理空间等多种类型,同时还拥有高级数据建模和表连接等功能。PostgreSQL是使用ANSI SQL标准的一种数据库,也支持JSON、XML等多种数据格式。PostgreSQL 是一个功能强大、可靠性高、丰富性强的数据库管理系统,广泛应用于大型企业和各类应用程序。原创 2023-04-29 23:14:07 · 1022 阅读 · 0 评论 -
clickhouse数据库设置密码
clickhouse默认密码加密传输,所以我们要设置密文,使用加密算法sha256。clickhouse 用户信息,在配置文件。可以通过修改这个配置文件,给用户设置密码。找到密码位置,注释掉,添加我们的新密码。只是作为示例,请设置足够强度的密码。重启clickhouse服务。密码生成可以使用命令。使用vi命令修改文件。原创 2022-10-22 15:57:47 · 3437 阅读 · 0 评论 -
PostgreSQL手动创建HikariDataSource解决报错Cannot commit when autoCommit is enabled
代码】PostgreSQL手动创建HikariDataSource解决报错CannotcommitwhenautoCommitisenabled。org.springframework.orm.jpa.JpaSystemException: Unable to commit against JDBC Connection; nested exception is org.hibernate.TransactionException: Unable to commit against JDBC Connect原创 2022-07-26 17:55:10 · 2047 阅读 · 0 评论 -
ClickHouse相关SQL总结:创建表、分区/主键/排序设置、删除表、删除分区、修改表字段
代码】ClickHouse相关SQL总结创建表、分区/主键/排序设置、删除表、删除分区、修改表字段。原创 2022-07-21 21:34:26 · 4242 阅读 · 3 评论 -
ClickHouse字段分组聚合、按照任意时间段粒度查询SQL
ClickHouse字段分组聚合、按照任意时间段粒度查询SQL需求解决使用if和sum实现按照字段类型求数量求总数量使用toStartOfInterval实现不同时间粒度求和5分钟10分钟半小时一个月一年都行需求基础数据入库,需要根据字段做一些聚合现有路口过车数据,有各种车型,需要统计总流量和各个车型流量现有过车数据,需要按照时间不同粒度,统计车流量解决使用if和sum主要是使用if,符合条件为1,不符合为0,再使用sum求和...原创 2022-06-30 23:17:14 · 6923 阅读 · 0 评论 -
ClickHouse安装和使用(windows10 docker 和 linux centos7)
ClickHouse安装使用(windows10 docker 和 linux centos7)安装centos7windows10使用工具操作命令安装centos7linux可以直接安装sudo yum install yum-utilswindows需要提前安装一个docker,在这里不做赘述windows可以使用docker安装镜像,可以使用windows DOS,也可以直接使用 Docker Desktop,映射配置很方便可以安装最新版的,也可以指定你要的版本......原创 2022-06-30 18:12:25 · 1301 阅读 · 0 评论 -
Sharding-Proxy数据插入报错Sharding value must implements Comparable NoSuchElementException
数据插入报错做了分库分表,现在需要将已有的单个数据库的数据,迁移到对应的分库分表数据库数据迁移,是读取指定表的表结构信息,使用PreparedStatement,使用占位符将数据拼接提交为了防止迁移出错,多次迁移,每次将sharding表先清空,后迁移迁移中,遇到一些报错,版本5.0报错一Sharding value must implements ComparableCommandExecutorTask - Exception occur: java.lang.IllegalArgu原创 2022-04-12 13:42:16 · 2792 阅读 · 1 评论 -
Sharding-Proxy分库分表和数据加密
文章目录Sharding-Proxy分库分表和数据加密使用场景配置文件讲解server.yamlconfig-encrypt.yamlconfig-sharding.yaml其他使用情况总结Sharding-Proxy分库分表和数据加密主要将实际项目中使用shardingshpere-proxy的经历经验,总结分享一下。使用场景公司规划研发了两款针对政务新媒体和数字乡村的SaaS平台,作为新的利润增长点。考虑到以后的用户数量和数据数量,决定按照租户(签约客户)进行分库分表。对于一些敏感数据,例如身原创 2022-04-08 23:27:10 · 2441 阅读 · 0 评论 -
使用canal监控mysql数据库实现elasticsearch索引实时更新
文章目录业务场景安装下载安装数据库启用row binlog使用修改配置文件canal.properties配置单个连接配置多个连接配置rabbitMQ程序改动canal源码微服务消费mq业务场景使用elasticsearch作为全文搜索引擎,对标题、内容等,实现智能搜索、输入提示、拼音搜索等elasticsearch索引与数据库数据不一致,导致搜索到不应被搜到的结果,或者搜不到已有数据索引相关业务,影响其他业务操作,如索引删除失败导致数据库删除失败为了减少对现有业务的侵入,基于数据库层面,对信息原创 2022-03-28 18:07:42 · 3896 阅读 · 3 评论 -
shardingshere-proxy分库分表使用时,主键设置不生效为null的报错处理
报错一:分库的表relation "hibernate_sequence" does not exist 报错二:不分库的表null value in column "id" of relation "customer_info"SaaS平台项目,需要根据租户分库,使用ShardingSphere-proxy 版本5.1项目采用Spring Cloud微服务架构,持久层使用hibernate,版本 5.4 数据库Postgres QL 13.5 普通的JPA保存方法,代码没有变动,原本可以正常运行没有报错原创 2022-03-13 10:46:16 · 3561 阅读 · 0 评论 -
JPA使用shardingsphere-proxy连接,查询报错Exception occur
文章目录场景报错信息排查过程处理方式字段记录(未完待续)场景业务要求,需要按照租户进行分表,并需要对敏感信息进行脱敏存储决定使用业界成熟的数据库中间件shardingshere-proxy使用的是PostgreSQL数据库,版本13.5项目使用的hibernate 版本 5.4,jdk版本11部署使用中间件版本shardingsphere 5.0.0,jdk 8(无法使用11)使用JPA查询时报错,但是不使用shardingphere-proxy时,JPA可以正常查询报错的代码原创 2022-02-28 13:41:44 · 1904 阅读 · 0 评论 -
PostgreSQL update多张表关联查询更新
文章目录场景问题解决update后只能单张表set不能使用别名正确写法使用from验证最终SQL场景两张表,一张党员表,一张党组织表党员表里冗余了一个党组织名称,但是党组织更新时,未更新党员表现在需要使用SQL,将党员表里的冗余党组织名称修改正确PostgreSQL的多表更新语法,与MySQL、Oracle不太一样问题解决为了防止更新出错,先把党员表复制一份,使用复制表执行更新SQL操作无论是生产环境,还是测试环境,数据安全都是很重要的,无论是更新还是删除,一定要慎重,否则造成无法挽回原创 2022-02-25 13:49:36 · 12070 阅读 · 4 评论 -
使用shardingsphere访问postgresql报错java.sql.Date cannot be cast to java.sql.Timestamp
文章目录场景解决场景数据库 PostgreSQL业务要求,需要对敏感数据,做脱敏处理技术要求,减少代码改动,尽量做到对代码透明拟采用shardingsphere-jdbc,成熟的数据库中间件考虑到需要根据租户分库,直接使用了shardingsphere-proxy配置好后,可以正常使用,但是发现查询报错(正常查询业务,和脱敏配置无关)很奇怪,不是一开始就报错,访问几次后报错,后面一直报错报错信息,java.sql.Date cannot be cast to java.sql.Times原创 2022-02-23 18:26:00 · 2073 阅读 · 0 评论 -
clickhouse数据库java连接使用和设置超时时间
文章目录maven依赖引入spring配置文件java代码创建bean和使用超时设置maven依赖引入本次使用alibaba的druid连接池使用maven引入依赖,在pom.xml里添加 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId>原创 2022-02-20 14:30:45 · 3873 阅读 · 0 评论 -
clickhouse常用SQL语句,查询、建表、数据复制迁移、删除等
文章目录1. 查询 数据库容量2. 查看所有表3. 常用查询4. MySQL导入到ClickHouse5. clickhouse表数据迁移到新的分区表1. 查询 数据库容量select sum(rows) as "总行数", formatReadableSize(sum(data_uncompressed_bytes)) as "原始大小", formatReadableSize(sum(data_compressed_bytes)) as "压缩大小", round(s原创 2022-02-18 17:58:35 · 2866 阅读 · 1 评论 -
PostgreSQL登录失败:psql error FATAL Peer authentication failed for user pgpool
pgpool用户已创建,密码已设置,权限已设置,允许登录,navcat工具可以连接。 但是在PostgreSQL所在服务器上,连接失败,使用以下命令登录均报错psql: error: FATAL: Peer authentication failed for user "pgpool"。问题分析和解决方案如下。原创 2021-12-09 21:57:00 · 2725 阅读 · 0 评论 -
PostgreSQL13使用流复制Replication功能搭建主从集群实现读写分离
三台服务器,一主两从。不借助插件或第三方中间件,仅使用PostgreSQL自带的流复制功能。主节点可建库建表、可读写,两个从节点为只读,程序使用时可以通过读写分离减少数据库读写压力。 设置同步复制,为热备份,数据实时同步,对于大多数业务来说,可以认为三个库数据完全相同,当一个库故障时,其他库仍然可提供服务,增加服务可用性。 当主节点故障时,数据无法更新,只能手动将从节点升格为主节点,需要修改服务的数据库连接配置等,服务短暂不可用原创 2021-12-04 20:55:05 · 4513 阅读 · 9 评论 -
sharding-proxy-v5.0.0Beta源码本地运行调试
文章目录简介下载源码下载压缩包git同步代码install源码到自己maven仓库运行ShardingSphere-Proxyproxy功能调试简介ShardingSphere-Proxy是ShardingSphere的产品,定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持目前先提供MySQL/PostgreSQL版本,它可以使用任何兼容MySQL/PostgreSQL协议的访问客户端(如:MySQL Command Client, MySQL Workb原创 2021-09-03 18:02:00 · 940 阅读 · 1 评论 -
sharding-proxy和sharding-ui 简介与v5.0.0-beat版本搭建配置
文章目录简介目标相关知识相关概念ShardingSphere-Proxy部署运行1. 安装zookeeper2. 下载解压SHARDINGSPHERE_PROXY3. 规则配置数据源配置权限配置4. 引入依赖5. 启动服务6. 使用ShardingSphere-ProxyShardingSphere-UI简介部署运行配置使用后续简介Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,原创 2021-08-12 18:17:23 · 1268 阅读 · 1 评论 -
citus:PostgresQL多租户案例
文章目录环境安装PostgresQL和citus创建Database设置协调节点和工作节点创建表在协调节点创建表分片数量和副本数创建分布表导入数据测试查询插入更新group by排序参考环境PostgresQL:PostgreSQL 13.3citus:Citus 10.0.3操作系统:CentOS Linux release 7.6.1810 (Core) x86_64安装PostgresQL和citus安装PostgresQL:PostgreSQL介绍和centos7安装部署安装ci原创 2021-07-15 19:08:36 · 1200 阅读 · 1 评论 -
citus介绍和centos7安装部署和集群搭建
citus简介citus是PG的一个sharding插件,可以把PG变成一个分布式数据库citus是一款基于PostgreSQL的开源分布式数据库,自动继承了PostgreSQL强大的SQL支持能力和应用生态(不仅仅是客户端协议的兼容还包括服务端扩展和管理工具的完全兼容)citus是一个PostgreSQL扩展而不是一个独立的代码分支citus可以用很小的代价和更快的速度紧跟PostgreSQL的版本演进;同时又能最大程度的保证数据库的稳定性和兼容性citus主要特性PostgreSQL兼原创 2021-07-13 10:13:20 · 2103 阅读 · 0 评论 -
PostgreSQL简介和安装部署
PostgreSQL介绍PostgreSQL是一个基于POSTGRES,版本 4.2的对象关系数据库管理系统 ( ORDBMS ) ,由加州大学伯克利分校计算机科学系开发PostgreSQL 是一个强大的开源对象关系数据库系统,经过 30 多年的积极开发,在可靠性、功能稳健性和性能方面赢得了良好的声誉。它使用并扩展了 SQL 语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能免费,开源,高度的可扩展性centos环境安装部署启动下载安装:https://www.postgresql原创 2021-07-08 17:58:04 · 478 阅读 · 1 评论 -
MongoDB新加db后程序无法访问 Command failed with error 18: ‘Authentication failed.‘
用此用户名和密码连接MongoDB,连接失败,报错`Command failed with error 18: ‘Authentication failed.`报错信息是没有用户权限,但是确定用户名、密码没错误原创 2021-05-09 15:05:22 · 1071 阅读 · 1 评论 -
数据库锁表MySQLTransactionRollbackException: Lock wait timeout exceeded; try restartin排查过程
问题客户反馈后台系统信息添加很卡,然后添加失败,无法添加查看服务日志,发现mysql报错锁表程序和数据库近期没有改动,所以首先锁定日志排查,确认锁的表和具体原因解决根据tomcat输出的日志,确认为mysql报错抛出的问题根据打印的堆栈,找到对应代码,发现报错处是一个删除方法查询锁表的SQL线程,是删除语句,删除时耗时较长卡主了# 查询现有事务,看哪些进程在等待select * from information_schema.innodb_trx;# 紧急处理,可以先删除现有事务原创 2021-05-09 14:41:17 · 6559 阅读 · 0 评论 -
fastdfs连接超时问题排查处理
文章目录fastdfs简介问题现象解决fastdfs简介FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。问题现象发现图片、附件无法上传,重启fastdfs后解决项目的4个应用用一个fastdfs的同一个group,发现某一个应用的用户无法上传,但同时其他应用的用户可以,过一段时间后又可以了,重启fastd原创 2021-04-14 09:16:08 · 2243 阅读 · 0 评论 -
达梦数据库首次使用和排错
武汉达梦数据库有限公司成立于2000年,为国有控股的基础软件企业,专业从事数据库管理系统研发、销售和服务。其前身是华中科技大学数据库与多媒体研究所,是国内最早从事数据库管理系统研发的科研机构。- 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。目前应该已经到了8.0的版本,简称DM8。本次适配达梦数据库为公司产品研发任务原创 2020-07-24 17:55:16 · 645 阅读 · 0 评论 -
国产数据库人大金仓踩坑记录和函数适配
文章目录介绍注意事项(踩的坑)函数适配(持续更新)技巧介绍北京人大金仓信息技术股份有限公司(简称:人大金仓),是国产数据管理软件与服务提供商。人大金仓主要服务于电子政务、党务、国防军工、金融、智慧城市、企业信息化等行业。在北京、上海、成都、天津等地设有研发和服务中心,在全国设有分公司、办事处及代理机构,可提供7×24小时的本地化服务本次测试使用人大金仓V8版本程序使用java语言,hibernate5注意事项(踩的坑)必须针对数据库名称,建立用户名,赋予权限。否则即使default_sch原创 2020-07-19 17:27:51 · 17775 阅读 · 20 评论 -
年轻代频繁GC,大量FlushEntityEvent等hibernate对象(hibernate的内存泄漏)问题解决
现象高并发请求,需要操作数据库。大量的查询、删除、插入、更新操作。一次请求需要处理10万条数据左右,每条数据处理,都需要查询、删除、插入、更新多次,操作多张表。为了防止内存溢出,一次处理1000条。在Controller层方法分页,处理在service层执行,这样每处理1000条,提交一次。程序初始运行很快,处理1000个大概10秒,后来逐步的越来越慢,逐步变大,变成几十、几百、直至一千...原创 2020-03-22 08:36:21 · 1123 阅读 · 1 评论 -
在Navicat里连接MongoDB,使用查询语句正则匹配修改内容
业务场景CMS,内容管理系统,主要是新增编辑新闻,发布新闻使用MySQL存储新闻的各个字段,使用MongoDB存储文章正文(带样式的正文比较大)某网站升级改版,使用新系统。数据和附件迁移后,发现正文中的图片链接是访问原有的老系统文件服务的。老的系统不久后会关闭,文件附件已经拷贝过来。需要把老的图片附件链接,换成新的绝对路径的。解决使用Navicat连接MongoDB使用查询功能,...原创 2020-02-04 21:55:10 · 3251 阅读 · 0 评论