标签: citus

我可以更改现有Citus表上的分配方法吗?

在从MySQL迁移到Citus集群期间,我使用了range分发方法.迁移已完成,但现在我想将分配方法更改为hash.

有没有办法从改变分配方法range,以hash用于在它已经数据现有的表?

我想出了以下程序,但我不确定它是否有效:

  1. 为更改的所有分片更新表的列minvaluemaxvaluepg_dist_shard
  2. 更新的碎片存储类型列pg_dist_partition从表rh
  3. COMMIT;

postgresql citus

5
推荐指数
1
解决办法
463
查看次数

如何使用多列中的值分发表?

Acording到了西特斯文件,很容易使用单一柱分配表:

SELECT master_create_distributed_table('github_events', 'created_at', 'append');
Run Code Online (Sandbox Code Playgroud)

有没有办法使用多列分发表?例如,类似于:

SELECT master_create_distributed_table('github_events', 'user_id,site_id', 'append');
Run Code Online (Sandbox Code Playgroud)

postgresql citus

4
推荐指数
1
解决办法
438
查看次数

Citus 上的主键(UUID、序列)策略

Citus上主键的最佳方法是什么?

UUID: 与身份/序列号相反,不需要锁定。但存储成本高昂,最终查询+会导致碎片。

序列 - 身份 在创建实体时导致瓶颈。存储和查询成本更低,速度更快+没有碎片。

如果我们想要规模化的项目,使用 UUID 会更好吗?

根据这篇文章: https://www.cybertec-postgresql.com/en/uuid-serial-or-identity-columns-for-postgresql-auto- generated-primary-keys/

对于分片,建议最终使用 UUID。

它在Citus上的表现如何?

我将给出一个架构示例:

User
UserId uuid/bigint?

Device
Device Id uuid/bigint?
UserId (here for the distribution key)
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们想要根据UserId来分发用户数据,例如他的Devices。主键 id 类型应该是什么?如果 UUID 就是答案,我们是否应该担心节点中的碎片?

postgresql uuid primary-key bigint citus

4
推荐指数
1
解决办法
1077
查看次数

Django - 保存时切勿更新列

我正在尝试将 citus 数据(https://www.citusdata.com/)与 Django 一起使用。

到目前为止,除了尝试save已保存的模型之外,大多数内容都正常:

NotSupportedError: modifying the partition value of rows is not allowed
Run Code Online (Sandbox Code Playgroud)

这是因为 django 始终包含更新 SQL 中的每个字段,即使该字段没有更改。

在 Citus 中,您必须选择一个字段作为分区字段,然后就无法更改它。因此,当我保存对象时,它不喜欢分区键位于更新语句中,即使它没有更改。

我知道你可以将update_fields关键字 arg 传递给该save方法,但我想知道我是否可以以某种方式告诉 django 在更新时永远不要包含字段?

python django citus

2
推荐指数
1
解决办法
1009
查看次数

在单个Postgresql实例上组合NoSQL和Relational Database

我有一个现有的关系Postgresql数据库.一些表包含非常胖的blob,它们作为NoSQL文档会更好.这将大大减轻我们的关系数据库.

因此,我们考虑将这些blob-table移动到像CosmosDB或MongoDB这样的NoSQL解决方案中.但是,纯关系表存在外键依赖关系,这使得将这些表移出到自己的数据库中变得复杂.

我发现PSQL本身支持存储文档并且可以分发.我到目前为止看到的解决方案是CitusData和Postgres XL.对于那些使用它们的人,他们如何比较?

有没有人遇到过类似的情况?你有没有分成NoSQL数据库?或者有没有人将他们的PSQL分区为关系和NoSQL部分?那是怎么回事?事后你会建议你注意什么?

postgresql mongodb nosql citus azure-cosmosdb

2
推荐指数
1
解决办法
783
查看次数

在生产中支持Citus?社区还是高级?

我们一直在构建一个使用Citus数据库的系统,我们正在考虑在投入生产之前购买高级支持选项,但成本相对较高.我对社区的分析是相当小的和利基,虽然有越来越多的懒散渠道谷歌团体论坛.

我们在开发过程中遇到的错误主要是通过文档很好地解决的.进入刺激,配置存在一些不确定性因此我的问题.

有没有人有任何问题,并使用社区或高级支持?在交付速度,响应质量,反馈一致性以及最终解决问题的周转时间方面的体验如何.

最终,我们需要为客户提供高SLA,并在生产中快速解决问题对我们的业务至关重要

citus

2
推荐指数
1
解决办法
189
查看次数

citusdb:psql命令不起作用

我正在尝试第一次使用citusdb,并在下载页面中,他们提供了入门指南,所以我正在关注它.

首先,我在本地计算机上尝试此操作,并在此处使用入门指南第三点的示例数据.

在那里,他们提供修改,psql以便您可以使用它citusdb.首先我连接到这个:

/opt/citusdb/2.0/bin/psql -U postgres -h localhost -d postgres
Run Code Online (Sandbox Code Playgroud)

然后,当我尝试创建数据库时,指南说您可以使用保留字DISTRIBUTE,但是当我在指南上尝试命令时:

CREATE TABLE customer_reviews
(
    customer_id TEXT not null,
    review_date DATE not null,
    review_rating INTEGER not null,
    review_votes INTEGER,
    review_helpful_votes INTEGER,
    product_id CHAR(10) not null,
    product_title TEXT not null,
    product_sales_rank BIGINT,
    product_group TEXT,
    product_category TEXT,
    product_subcategory TEXT,
    similar_product_ids CHAR(10)[]
)
DISTRIBUTE BY APPEND (review_date);
Run Code Online (Sandbox Code Playgroud)

似乎psql不接受这个DISTRIBUTE词,因为它显示了一个syntax error at or near DISTRIBUTE

请帮助,如果有人使用过它,并知道问题是什么,也许它太明显了,但这是我第一次使用citusdb.

谢谢.

database postgresql citus

1
推荐指数
1
解决办法
681
查看次数