数据库
文章平均质量分 71
梦想画家
开源软件爱好者,乐于博客分享,业余时间喜欢跑步和科幻,希望与意趣相投朋友一起学习交流。
展开
-
快速掌握 Cypher 查询语言
> Cypher是最广泛采用的、开放的、专门用于图数据库查询语言。它提供了一种直观和快速的方式来处理图数据。>> 本文包含一些常见的Cypher查询及其解释。如果你不确定如何编写Cypher查询时,可以查看此文备忘单。如果你是图形数据库和Cypher的新手,你也可以使用这篇文章来熟悉Cypher提供的功能。原创 2023-07-27 13:55:25 · 1297 阅读 · 0 评论 -
Neo4j数据库中导入CSV示例数据
本文简要介绍Neo4j数据库以及如何从CSV文件中导入示例数据,方便我们快速学习测试图数据库。首先介绍简单数据模型以及基本图查询概念,然后通过LOAD CSV命令导入数据,生成节点和关系。原创 2023-07-26 16:23:54 · 1830 阅读 · 0 评论 -
ClickHouse存储解析JSON数据
json数据在ClickHouse中就和string字段一样,但可以使用JSON*函数检查并抽取json键值。还可以使用抽取函数作为索引提升查询性能,但最好考虑将它们移动到单独的列中,只留下动态内容存储在JSON列中。参考:https://altinity.com/blog/clickhouse-json-data-type-version-22-6;原创 2023-03-30 21:18:57 · 6772 阅读 · 0 评论 -
常用ClickHouse性能监控SQL汇总
ClickHosue对DBA非常友好,system数据库提供了所有DBA需要的信息。本文进行介绍最重要的一些SQL,远不是完整清单,但应该能帮助你快速确定问题。参考文档:https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema;原创 2023-03-29 20:07:57 · 2105 阅读 · 0 评论 -
快速搞懂ClickHouse表引擎
表引擎在ClickHouse中扮演重要角色,直接决定如何存储、读取数据,是否支持并法读写,是否支持索引、查询类型、主从复制等。ClickHouse提供4类表引擎,分别支持不同场景。如Log系列用于小型表数据分析,MergeTree系列实现大型表数据分析,集成系列用于数据集成。考虑到这么多类型对于新用户经来说难以理解、也难以选择,本文试图对各类引擎进行整理,加深理解,希望对你也有帮助。另外复制系列和分布式表引擎比较复杂,未来再学习分享。原创 2023-03-24 20:24:50 · 1629 阅读 · 0 评论 -
高效实施ClickHouse数据备份
本文介绍ClickHouse数据备份,包括手动实施,利用第三方工具(clickhouse-backup)实现。主要包括创建用户并授权,手动备份、自动备份。原创 2023-03-24 08:17:12 · 1766 阅读 · 1 评论 -
ClickHouse使用MySQL实现字典查询
外部字典是ClickHouse的一等公民,是Schema的一部分,我们可以使用本地DDL或 ON CLUSTER语句进行创建。实现细节多用户是透明的,它自动转换join查询为字典调用,用户体验及查询性能都值得我们去学习和使用。外部字典还有其他类型,如层次、多边形等字典,未来继续学习并分享。原创 2023-03-18 15:47:48 · 1665 阅读 · 0 评论 -
Apache Hive 数据掩码函数教程
hive 提供了一些数据掩码函数,这里整理出来为需要设计掩码功能的开发者作为参考。原创 2022-11-08 16:34:32 · 949 阅读 · 0 评论 -
创建InfluxDB数据库自定义函数
flux查询实现四个方面。获取数据并基于时间或其他列值进行过滤、处理并塑造数据,然后返回结果。你也能使用flux创建任务,设定计划进行执行,非常适合实现自动降采和分析。flux设计之初就考虑了这几个特征,让开发者很容易学习、很容易阅读,查询编码能够测试、发现并修复bug,当然最重要的是开源特性。flux也基于可扩展的,开发者能够构建自己的函数和库。flux内置了很多函数,从简单的到复杂的地理空间计算。当开发者有特殊需求时,flux灵活性通过自定义函数可以提供极大的能力。原创 2022-10-29 19:51:10 · 1541 阅读 · 0 评论 -
Java访问OrientDB数据库实战教程
OrientDB是开源多模式NoSQL数据库,支持图、文档、key-value、地理空间等多种存储模式;同时支持SQL语法进行查询交互,本文介绍OrientDB数据库的Java api。原创 2022-07-10 21:26:24 · 1194 阅读 · 0 评论 -
Python读写时序数据库InfluxDb
InfluxDb 是高性能的时间序列数据库,能够存取高吞吐量时间序列数据,每秒可达几百万数据点。数据点(或时间序列数据)可能是CPU运行指标、不同服务器的日志信息、传感器数据、股票市场数据等。InfluxDb 使用Go语言开发,无需外部依赖。InfluxDb 提供了类SQL接口查询数据。自动压缩数据和降低采样率有助于最大限度地减少存储空间。通过连续查询和数据保留策略,可以让数据库中的旧数据过期。行协议语法下面示例度量名称为weather,包括两个标签location和season再看一个示例,除了标签原创 2022-06-10 21:04:24 · 4106 阅读 · 2 评论 -
PostgreSQL NUMERIC 数据类型
NUMERIC 类型能存储大数据量的数值。通常NUMERIC类型用于需要精确性的数字,如货币数量或度量。本文介绍 NUMERIC ,并通过示例学习它的特性。介绍 NUMERICNUMERIC类型的语法:NUMERIC(precision, scale)precision 表示整个数据长度,scale 表示小数部分的长度。如: 1234.567 ,precision 为 7 ,scale 为 3.NUMERIC 类型 在小数点前面长度可达到 131,072 ,小数点后面长度可达到 16,38.原创 2021-07-17 17:12:22 · 38652 阅读 · 1 评论 -
Spring AbstractRoutingDatasource 实现动态数据源
本文介绍如何使用 Spring AbstractRoutingDatasource 基于上下文动态切换数据源,因此我们会让查找数据源逻辑独立于数据访问之外。数据源上下文AbstractRoutingDatasource 需要信息决定路由到那个数据源,该信息我们称为上下文。可以市任何对象,下面示例我们使用枚举 ClientDatabase 作为上下文:public enum ClientDatabase { CLIENT_A, CLIENT_B}值得注意的是,实际中上下文可以是任何有意.原创 2021-06-27 22:29:11 · 509 阅读 · 1 评论 -
PostgreSQL通过pg_trgm扩展的三元索引实现全文检索
本文介绍利用pg_trgm扩展实现全文检索。1. 概述PostgreSQL可以使用三元索引增强全文检索。三元算法对字符串进行分词,如“dog” 被分为 “d”,”do”,”dog”,”og”多个词。pg_trgm扩展支持三元匹配。也在Gist和Gin索引上使用三元匹配操作提升检索速度或性能。对于全文搜索提供了不同的同义词,同时也可以使用Trigram来实现打字更正和建议。下面通过示例说明。2. 模糊匹配这里先介绍postgresql几种模糊操作符:like都比较熟悉的大小写敏感匹配,ili原创 2021-03-05 22:23:04 · 2269 阅读 · 1 评论 -
Elasticsearch快速初始化数据
设置分片和刷新间隔参数实际应用中需要给Elasticsearch初始化数据,当数据量比较大时我们希望能够快速载入。可以给索引设置两个参数。index.refresh_interval : 多长时间执行一次刷新操作,即使索引最近的更改在搜索中可见。缺省为1s,设置为-1则禁用刷新。index.number_of_replicas : 每个主分片的副本数量,默认为1。可以设置为0,即没有副本。上面两个参数设置可以更快索引,但短时间如果任何分片丢失会导致数据丢失的风险。因此,一旦初始化数据完成即刻设置回默原创 2021-02-28 21:35:49 · 2348 阅读 · 0 评论 -
通过例子看懂MVCC(Multi Version Concurrency Control)
本文简要介绍MVCC并解释其工作原理。也许你已看到很多相关的理论知识,这里希望使用最容易理解的示例进行说明。1. 什么是MVCC(Multi Version Concurrency Control)简言之,一条记录有多个版本。举例:用户A插入一条ID为1的记录(存储该记录在数据页上)。用户B更新ID为1的记录。一条插入记录并被另一个用户更新。首先插入记录,旧版本记录被新的更新语句改变,变成了新版本记录。但新版本记录在数据页上是独立新增,不是更新原来记录。MVCC对每个变化存储不同的版本,而不原创 2020-12-31 17:31:23 · 703 阅读 · 0 评论 -
介绍 PostgreSQL STRING_AGG() 和 ARRAY_AGG()函数
本文学习如何使用介绍 PostgreSQL STRING_AGG 函数,使用分割连接多个字符串。1. 介绍PostgreSQL STRING_AGG()PostgreSQL STRING_AGG() 函数是聚集函数,使用分隔符连接一组字符串,但结尾不会多余分隔符。语法如下:STRING_AGG ( expression, separator [order_by_clause] )expression 可以解析成字符串的任何有效表达式。如果是其他数据类型,需要显示转换为字符串。separa原创 2020-12-20 17:21:47 · 7634 阅读 · 0 评论 -
PostgreSQL CAST 转换数据类型
本文介绍PostgreSQL CAST操作转换数据类型。1. PostgreSQL CAST介绍很多时候需要转换数据类型。PostgreSQL 提供了CAST操作实现类型转换。语法如下:CAST ( expression AS target_type );表达式可以是常量、列、表达式目标数据类型即想转换的数据类型*cast :: operator除了上面的语法,还有另外的语法实现同样功能;expression::type,举例:SELECT '100'::INTEGER, '0原创 2020-12-20 10:47:11 · 39530 阅读 · 6 评论 -
介绍MySQL存储引擎及应用
本文介绍MySql几种存储引擎(表类型),即MySql的底层存储特性,利用这些特性可最大化提升数据库性能。1. 存储引擎MySql体哦国内下列几种存储引擎:MyISAMInnoDBMERGEMEMORY (HEAP)ARCHIVECSVFEDERATED每种类型都有其优劣势。关键需要理解每种存储引擎特性并选择最适合一种创建表以提升数据库性能。下面简要介绍每种存储引擎及其特性,让你能够决定什么场景选择哪种类型引擎。1.1 MyISAMMyISAM 扩展之前的 ISAM 存储引擎。M原创 2020-12-13 20:01:43 · 255 阅读 · 0 评论 -
介绍 PostgreSql 两个有用的比较操作
介绍 PostgreSql 两个有用的比较操作本文介绍PostgreSql中两个非常方便、有用的比较操作,OVERLAPS 和 BETWEEN SYMMETRIC。1. OVERLAPS(重叠)OVERLAPS操作,用于检测两个日期范围是否重叠。举例:SELECT (DATE '2016-01-10', DATE '2016-02-01') OVERLAPS (DATE '2016-01-20', DATE '2016-02-10');结果返回true。时间范围边界有两种方式:日期(tim原创 2020-11-15 17:04:32 · 1400 阅读 · 0 评论 -
Golang PostgreSql数据库事务处理
Golang PostgreSql数据库事务处理对于数据库执行多个更新操作时,事务会将多个操作当成单个单元处理,要成功都成功,否则都失败。本文通过实例说明Go Sql事务处理。1. 环境准备 搭建PostgreSql数据库环境,我们打算在postgre数据库中新建表meta_data(id, source),然后插入记录测试事务。 go操作数据库的包为"database/sql",这里数据库使用postgreSql,需要导入github.com/lib/pq;下面是准备数据库连接代码。impo原创 2020-08-05 15:52:36 · 1402 阅读 · 0 评论 -
介绍BoltDB:Golang高性能持久化解决方案
介绍BoltDB:Golang高性能持久化解决方案1. 介绍BoltBoltDB是纯Go语言实现的持久化解决方案,保存数据至内存映射文件。称之为持久化解决方案不是数据库,因为数据库这个词有很多额外功能是bolt所不具备的。正是因为缺乏这些功能使得bolt如此优雅、好用。Bolt就是一个Go包。无需在系统中安装,开始编码前也无需配置,什么都不需要,仅需要go get github.com/boltdb/bolt,然后import “github.com/boltdb/bolt”。要完全使用bolt的存原创 2020-06-21 15:48:30 · 4096 阅读 · 0 评论 -
介绍JPA的Many-To-Many 关系
介绍JPA的Many-To-Many 关系本文我们讨论JPA中多种方式处理多对多关系。为了方便阐述,使用大家熟悉的场景,学生、课程以及两者之间不同的关系。同时示例代码也不用过多的属性,仅展示核心的配置。1. 多对多基础1.1. 数据库建模关系是两个类型实体之间的连接。在多对多情况下,两边都能关联多个实例。注意,实体类型可能与其自身存在关系。例如当建模家谱时,每个节点都是一个人实例,如果...原创 2019-11-23 17:04:41 · 5649 阅读 · 0 评论 -
mysql 存储过程错误调试记录
mysql 存储过程调试记录 非常实用 学习mysql存储过程开发的最佳实践原创 2014-09-05 12:43:02 · 2753 阅读 · 0 评论 -
Pentaho Report Designer 入门教程(一)
Pentaho Report Designer 入门教程,通过示例详细说明,并集成到java应用中。原创 2014-09-22 14:48:01 · 8554 阅读 · 0 评论 -
Pentaho Report Designer连接HSQLDB问题
《Pentaho Reporting 3.5 for Java Developers》第三章中连接hsqldb错误,以及正确连接方式的说明,是学习Pentaho Reporting 的学习笔记,供参考。原创 2014-09-12 14:05:38 · 3253 阅读 · 0 评论 -
详解kettle之User Defined Java Class步骤(二)
kettle udjc 步骤的详细说明,用示例来辅助学习,非常好的学习kettle资料。原创 2014-09-07 18:56:32 · 7507 阅读 · 0 评论 -
kettle的job中执行每行
etl kettle 进阶学习教程 权威 关于循环的示例翻译 2014-09-04 08:31:15 · 13590 阅读 · 0 评论 -
使用kettle批量下载文件
使用kettle 批量下载文件示例,非常实用且详细的教程,有代码供下载学习!原创 2014-09-10 09:24:48 · 10083 阅读 · 7 评论 -
使用kettle把XML文档转换成数据表结构
kettle 进阶教程(权威)解析xml的教程翻译 2014-09-02 15:13:45 · 12088 阅读 · 1 评论 -
kettle的job中使用循环
kettle 进阶教程 非常实用的etl学习教程翻译 2014-09-04 08:19:34 · 9403 阅读 · 0 评论 -
详解kettle之User Defined Java Class步骤(三)
kettle udjc 步骤的详细说明,用示例来辅助学习,非常好的学习kettle资料。原创 2014-09-07 19:00:09 · 8754 阅读 · 0 评论 -
检查处理kettle数据流中的空行
kettle etl 学习教程, 权威简单,快速学习。翻译 2014-09-05 08:05:33 · 7831 阅读 · 0 评论 -
详解kettle之User Defined Java Class步骤(一)
kettle udjc 步骤的详细说明,用示例来辅助学习,非常好的学习kettle资料。原创 2014-09-07 18:50:42 · 9783 阅读 · 3 评论 -
kettle中访问前一行数据
kettle 进阶教程 权威示例 快速学习翻译 2014-09-05 07:53:22 · 5038 阅读 · 2 评论 -
kettle中实现动态SQL查询
详细说明kettle中两者方式实现动态查询,分别是占位符和变量方式,示例使用H2数据库,方便学习。原创 2014-09-15 07:28:25 · 51996 阅读 · 10 评论 -
Pentaho Report Designer 入门教程(二)
Pentaho Report Designer 入门教程(二),详细说明在java swing程序中集成Pentaho Report报表。原创 2014-09-24 21:17:22 · 4174 阅读 · 0 评论 -
Pentaho Report Designer 入门教程(三)
Pentaho Report Designer 集成到j2ee程序的示例。原创 2014-09-26 07:46:47 · 5819 阅读 · 4 评论 -
示例学习kettle之Excel Writer步骤
通过示例学习Excel Writer步骤,简单一些,是根据模板生成excel报表的最佳方法。翻译 2014-09-16 17:33:46 · 7286 阅读 · 0 评论 -
kettle中javascript步骤错误处理
举例说明kettle中javascript步骤的错误处理功能。原创 2014-10-23 08:35:04 · 5988 阅读 · 0 评论