问题标签 [scylla]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grafana - 使用 Prometheus 和 Grafana 监控 Scylla db
我已经在服务器 A 中安装了 scylla db。
在服务器 B 中安装 Prometheus 和 Grafana。
使用节点导出器(在服务器 A 中安装的节点导出器)监控 scylla db 服务器资源(CPU、RAM、磁盘性能.. )。
需要使用 Prometheus 和 Grafana(来自服务器 B)监控 scylla db 操作。
服务器 A 中需要安装哪些导出器,以及 Grafana 中的 scylla db 监控所需的仪表板
database - Cassandra 表定义/分区/建模
尝试为我们的场景定义正确的模式/表:我们有数百个电子商务站点,每个站点都有唯一的siteId
.
每个站点都有自己的最终用户,每月最多 1000 万独立用户。每个用户都有独特的userId
.
每个最终用户都与网站交互:查看产品、将产品添加到购物车和购买产品(我们称之为用户事件)。我想存储过去 30 天(或 180 天,如果可能)的活动。
需要考虑的事项:
- 网站大小不一样!我们有一些拥有 1000 万最终用户的“重度”网站,但我们也有拥有数百/数千用户的“轻量”网站。
- 事件没有唯一的 ID。
- 用户一次可以有多个事件,例如,他们可以查看包含多个产品的页面(但我们可以不受限制以简化)。
- 粗略估计:100 个客户 x 10M 最终用户 x 100 次交互 = 100,000,000,000 行(每月)
- 实时写入(当事件到达服务器时)。读取完成的次数要少得多(1% 的事件)。
- 事件有更多的元数据,不同的事件(查看/购买/..)有不同的元数据。
- 使用 Keyspace 在站点之间进行分隔,并管理每个站点的表与一张表中的所有客户。
如何在这里定义密钥?
/li>
我的查询是:获取特定用户的所有事件(及其元数据)。正如我上面假设的那样,大约有 100 个事件。
Edit2:我想不清楚,但是用户的唯一性是每个站点,如果两个不同的用户在不同的站点上,他们可能具有相同的 id
python - cqlsh 找不到需要执行的 Python 版本
当我输入:cqlsh
在我的终端窗口中,我收到一条错误消息:
-bash: /usr/local/bin/cqlsh: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
但是,如果我键入Python --version
终端验证我的计算机上安装了 Python 2.7.10。
在我看来,它cqlsh
正在尝试运行 python,但它位于错误的目录中?
任何帮助将不胜感激!
更多上下文:我有一个带有 scylla(cassandra 外观相似)数据库的 docker 容器,但我想在本地使用 cqlsh。
scylla - 我可以在 scylla 2.0 或 2.1 中安全地从 1.6 恢复 Scylla 备份吗
我正在阅读有关 Scylla 升级程序的文档(例如阅读文档 http://docs.scylladb.com/upgrade/upgrade-guide-from-2.0-to-2.1-ubuntu/),并且我看到了标准1.6->2.0->2.1 等需要“阶梯”路径。作为一般问题,如果我有旧版本的 scylla 1.6(或 1.4 或 1.5)的备份,我可以将其加载到更新版本和数据自动迁移?有我可以使用的手动过程或工具吗?
或者是将数据从 1.6 获取到 2.1 以将数据加载到 1.6 数据库中的唯一方法,执行 1.6->1.7 升级,1.7->2.0 升级,然后 2.0->2.1 升级。
cassandra - 如果 Cassandra 数据库中的某个节点在向客户端传输数据时发生故障会怎样?
假设我们有一个 6 个节点的 Cassandra 集群,RF=3。因此,如果我们查询以从特定节点提取数据,并且在处理或传输数据时该节点会失败。以下场景的可能结果是什么?
假设它处理来自磁盘的所需数据并且节点在此过程中死亡,协调器(接收我们请求的节点)会将请求重新发送到复制节点之一还是只是向客户端返回错误?
假设节点在传输数据时死亡。那么协调器会返回部分数据吗?还是协调器会意识到信息不完整并重新将请求发送到不同的节点(副本)?
在任何一种情况下,作为程序员,我们是否必须明确地编写任何条件来告诉 Cassandra 服务器,或者这一切都在内部进行?
提前致谢。
PS:如果之前有人问过类似的问题,我很抱歉。我确实尝试过搜索,但我找不到它。
python - 如何使用 Python 在 Docker 容器中访问 ScyllaDB?
我已经按照官方文档用 ScyllaDB 设置了 Docker 容器。我创建了键空间和表。现在我想在这个表中插入一些数据。我想知道我可以这样做吗?我找到了例子:
但是我得到如下所示的错误。我找不到任何示例来说明如何使用 Docker 完成。有任何想法吗?
python - 是否可以更有效地使用 ScyllaDB for python 添加数据?
我尝试将 ScyllaDB 与 python 一起使用,但是速度很慢。当我运行底部显示的示例代码时,我得到:
我关心的是最好的性能,不幸的是这次向数据库添加数据的时间肯定太长了。有什么方法可以加快这个过程吗?
更新
根据本主题的建议,我决定根据官方文档使用准备好的语句和批处理来提高向 ScyllaDB 添加数据的性能。我目前的代码如下所示,但效率没有显着变化。还有其他想法吗?
运行此源代码后,结果如下所示:
linux - 在 ubuntu 14 上安装 ScyllaDB 期间无法找到软件包 libsystemd-dev
在我得到. _ 我尝试了许多其他方法,但没有任何效果。任何想法我该如何解决这个问题?sudo ./install-dependencies.sh
E: Unable to locate package libsystemd-dev
sudo apt-get install libsystemd-daemon-dev
python - 如何提高向 ScyllaDB 添加数据的性能?
我尝试使用Cassandra 和 Scylla 官方文档中描述的准备好的语句,但是对于 100,000 条消息,性能仍然在 30 秒左右。有什么想法可以改进吗?
更新
我发现强烈建议使用批处理来提高性能的信息,所以我根据官方文档使用准备好的语句和批处理。我现在的代码是这样的:
您是否知道为什么性能如此缓慢,并且在运行此源代码后结果如下所示?