乙巳🐍年

acc8226 的博客

在 Citus 集群上运行高效查询需要将数据正确地分布在计算机之间。这随应用程序类型及其查询模式的不同而不同。

在 Citus 上运行良好的应用程序大致有两种。数据建模的第一步是确定其中哪一个更类似于您的应用程序。

一览

Multi-Tenant Applications Real-Time Applications
模式中有时有几十或几百个表 Small number of tables
一次查询一个租户(公司/商店) 使用聚合的相对简单的分析查询
用于服务 Web 客户端的 OLTP 工作负载 摄取大部分不可变数据的高容量
为每个租户提供分析查询的 OLAP 工作负载 经常围绕着一个大的事件表

例子及特色

Multi-Tenant Application

这些通常是服务于其他公司、帐户或组织的 SaaS 应用程序。大多数 SaaS 应用程序本质上是关系型的。它们有一个自然的维度,可以在这个维度上将数据分布到节点上: 只需通过 tenant_id 分片即可。

Citus 使您能够向数百万租户扩展数据库,而无需重新构建应用程序。您可以保持所需的关系语义,比如连接、外键约束、事务、 ACID 和一致性。

  • 例如: 为其他企业提供门面服务的网站,如数字营销解决方案或销售自动化工具。
  • 特性: 与单个租户相关的查询,而不是跨租户连接信息。这包括用于服务 Web 客户端的 OLTP 工作负载,以及用于服务每租户分析查询的 OLAP 工作负载。在数据库模式中有几十或几百个表也是多租户数据模型的一个指示器。

使用 Citus 扩展多租户应用程序也需要对应用程序代码进行最小限度的更改。我们支持 Ruby on Rails 和 Django 这样的流行框架。

阅读全文 »

单节点 citus

通过 docker 进行安装

1
2
3
4
5
6
7
8
# start the image
docker run -d --name citus -p 5432:5432 -e POSTGRES_PASSWORD=pppppp citusdata/citus:11.2

# connect using psql within the Docker container
docker exec -it citus psql -U postgres

# # or, connect using local psql, verify it's running, and that Citus is installed:
psql -U postgres -h localhost -d postgres -c "SELECT * FROM citus_version();"
阅读全文 »

Apache JMeter 官网
https://jmeter.apache.org/index.html

下载地址
https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.zip

压力测试场景设计

1. 哪些业务需要做压力测试?

  • 比较常用的业务场景(or 功能模块)
  • 单业务场景/或者多业务场景
  • 项目要求做的业务场景

2. 压力测试的并发数是多少?

  • 有预期的数值?一次性达到?有上次性能测试的结果值?100 200 300 参照上次性能测试的结果 200 2:8
  • 无预期的数值?只有参考的在线用户数?2:8 原则———>可以用在线用户数的 20% 作为参考去测试。
阅读全文 »

多租户应用程序

在本教程中,我们将使用一个示例广告分析数据集来演示如何使用 Citus 为多租户应用程序提供支持。

本教程假设您已经安装并运行了 Citus。如果没有运行 Citus,可以使用 Single-Node Citus 中的一个选项在本地设置 Citus。

数据模型和示例数据

我们将演示为一个广告分析应用程序建立数据库,公司可以用来查看,更改,分析和管理他们的广告和活动(见一个应用程序的例子)。这样的应用程序具有典型的多租户系统的良好特征。来自不同租户的数据存储在一个中央数据库中,每个租户都有自己数据的独立视图。

我们将使用三个 Postgres 表来表示这些数据。首先,您需要下载这些表的示例数据:

1
2
3
curl https://examples.citusdata.com/tutorial/companies.csv > companies.csv
curl https://examples.citusdata.com/tutorial/campaigns.csv > campaigns.csv
curl https://examples.citusdata.com/tutorial/ads.csv > ads.csv
阅读全文 »

接口测试到底测什么

接口测试为什么重要?

我相信你一定听说过这样一句话:“测试要尽早介入,测试进行得越早,软件开发的成本就越低,就越能更好地保证软件质量。”但是如何尽早地进入测试,作为软件测试工程师的你,是不是也没办法说得清楚呢?其实上面那句话中的“测试”,所指的并不是测试工程师这个人,而是指包含了单元测试、接口测试、界面测试等一系列质量保障活动的测试工作。

接口是什么?

接口就是有特定输入和特定输出的一套逻辑处理单元,而它不用知道自身的内部实现逻辑,这也可以叫做接口的黑盒处理逻辑。

而从上面的例子你也可以看到,由于服务对象不同,接口又可以分为两种,一种是系统或服务的内部接口,一种是外部依赖接口。

阅读全文 »
0%