PostgreSQL高级查询,多个类型的值,查询出现次数最多的值,并在多个值时排除特定的值

背景

在我们遇到的真实案例中,在某个业务订单的类型,存在多个,我们需要查询该订单下出现最多的类型是什么? 但是由于业务原因,会有一个默认类型,导致统计查询时,会在某个时刻55开。导致识别到的一直是默认类型,这个时候就需要排除该类型。

实战vector采集nginx日志,并使用clickhouse存储

背景

针对web应用访问情况等,记录日志并使用分析。

vector

对于日志采集并存储的方法非常多,这里主要介绍使用rust开发的vector。

vector 是什么?

Vector 是一种高性能的可观察性数据管道,可以收集、转换所有日志、指标和跟踪信息( logs, metrics, and traces),并将其写到您想要的存储当中;Vector 可以实现显着的成本降低、丰富的数据处理和数据安全.

需要使用的组件:

PostgreSQL中批量生成测试数据

背景

使用postgres数据库,在创建表实现查询,经常需要构建数据。 通过sql语句批量插入测试数据。

创建扩展

使用pgcrypto实现uuid生成。

1
2
3
4
5
6
-- 创建一个扩展以生成 UUID
CREATE EXTENSION IF NOT EXISTS "pgcrypto";

-- 插入随机数据
SELECT
    gen_random_uuid()::character varying

生成随机数

使用random生成随机数。

用Postgres实现Embedding - (实现了基于文档的问答索引)

背景

随着大模型的出现,用户可以直接以自然语言提问并获得结果,这种交互方式,将来会逐步取代基于关键字的搜索。

一个预训练的大模型包含通识知识,但它无法访问很多不对外公开的专业文档、实时更新的数据等,因此,为了让大模型根据专业内容回答用户提问,我们需要使用Vector Embedding(向量嵌入)。

Python Peewee Postgres 读写分离实现

引言

随着互联网应用的快速发展,数据库的读写压力不断增大。为了提高数据库的性能和可扩展性,读写分离成为了一种常见的解决方案。读写分离的基本思想是将数据库的读操作和写操作分离到不同的数据库实例上,从而减轻主数据库的压力,提高系统的整体性能。本文将详细介绍 PostgreSQL 读写分离的实现原理和常见的实现方法。

PostgreSQL中的锁

PostgreSQL的并发控制以 快照隔离(SI) 为主,以 两阶段锁定(2PL) 机制为辅。PostgreSQL对DML(SELECT, UPDATE, INSERT, DELETE等命令)使用SSI,对DDL(CREATE TABLE等命令)使用2PL。

PostgreSQL高级模糊查询

PostgreSQL高级模糊查询

日常开发中,经常见到有模糊查询的需求。今天就简单聊一聊如何用PostgreSQL实现一些高级一点的模糊查询。

当然这里说的模糊查询,不是LIKE表达式前模糊后模糊两侧模糊,这种老掉牙的东西。让我们直接用一个具体的例子开始吧。