问题标签 [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.
cassandra - 如何配置 Cassandra TimeWindowCompactionStrategy
我在 1-7 天后的时间序列数据TTLs
(取决于用例)。数据是不可变的,并按时间戳 ( cluster by timestamp
) 排序 - 数据在“写入时”加盖时间戳(因此新数据时间戳应始终是渐进式的)
分区大小不应超过 10K 项目 - 通常要少得多(最多10MB
为 10k 项目)。
我没有找到任何关于如何配置压缩策略(要考虑哪些参数)的好的文档,所以我决定这样做:
绝对不确定这是正确的
KPI
我应该考虑什么?
cassandra - Cassandra 3.11 SSTableLoader 机制
我一直在使用 SSTableLoader 实用程序在两个不同的 Cassandra 集群之间批量传输数据,我想知道是否有其他人遇到过同样的问题。源集群有数据,目标没有。
我已经阅读了有关实用程序详细信息的 datastax 页面,但我仍然对它的工作原理有一些未解决的问题。
我在源集群的活动节点上使用该实用程序,命令遵循以下格式:
这两个集群都设置有 256 个 vnode,每个集群中有 6 个节点。两种环境中的架构都是 RF = 3,并且表的结构都相同。
所以我的问题如下:
1) 该实用程序从您指定的 cassandra.yaml 中提取源集群信息,但您仍然必须指定 SSTables 的绝对路径。那么从单个节点运行 SSTableLoader 是否会在完成后给我整个目标表?由于目标集群的令牌范围不同,因此似乎很难验证。
2)数据税信息说:
为了从 SSTable 加载中获得最佳吞吐量,您可以使用多个 sstableloader 实例在多台机器上进行流式传输。sstableloader 可以同时运行的 SSTable 数量没有硬性限制,因此您可以添加额外的加载器,直到您没有看到进一步的改进。
这是否意味着对于单个表,我将跨多个源计算机启动多个 SSTableLoader 实例?还是仅仅意味着我可以在多台机器上同时对多个不同的表使用 SSTableLoader。我试图了解他们提到的吞吐量增益是针对单个表还是仅针对飞行中的多个表。
3)从快照运行需要什么语法修改?我拍摄了一个快照并通过运行相同的命令进行测试,但进一步深入到表的快照目录中,它没有正确解析它说“快照”是一个无效的键空间。
无论如何,谢谢希望我对我的问题足够清楚。
cassandra - 使用 YCSB 进行基准测试时吞吐量和延迟之间的相关性
我正在使用 YCSB 对许多不同的 NoSQL 数据库进行基准测试。但是,在处理客户端线程的数量时,我很难解释吞吐量与延迟的结果。
例如,当对具有 16 个客户端线程的 cassandra 运行工作负载 a(50/50 读取和更新)进行基准测试时,将执行以下命令:
给出以下输出:
使用 32 个线程运行相同的操作,我得到:
整体运行时间较短,因此吞吐量较高,但延迟也较高。
我不太确定如何解释这些结果,以及如何找到要运行的“适当”数量的客户端线程?
debian - 设置 ScyllaDB + Janusgraph + Tinkerpop
即将开始将ScyllaDB与JanusGraph和Tinperpop3一起使用。
现在,我将使用 <200 GB 的数据,所以我想在我自己的(基于 Xeon 的)计算机上完成所有工作。
我的问题主要是:某些版本是否相互不兼容?
对于ScyllaDB,我可能会选择: https ://www.scylladb.com/download/debian9/
但是JanusGraph没有将 ScyllaDB 列为(经过测试和)兼容,尽管我已经在几个地方阅读过这可以使用 https://github.com/JanusGraph/janusgraph/releases/tag/v0.2.2
对于Tinkerpop3,我会选择他们最新的 3.3.4 版本 http://tinkerpop.apache.org/docs/current/reference/
cassandra - Cassandra(或 Scylla)如何对聚类列进行排序?
Cassandra(或 Scylla)的好处之一是:
当一个表有多个聚簇列时,数据以嵌套排序顺序存储。 https://docs.datastax.com/en/dse/6.0/cql/cql/cql_using/whereClustering.html
因此,我认为以相同的排序顺序读取数据应该非常快。
如果数据的写入顺序与聚类列指定的顺序不同,Cassandra(或 Scylla)何时真正重新排序数据?
是当 memtables 刷新到 SSTables 时吗?
如果一个 memtable 已经被刷新,并且我添加了一个应该在现有 SSTable 中的记录之前的新记录怎么办?
它是否会使数据在磁盘上无序一段时间并在压缩期间重新排序?
如果是这样,需要采取哪些步骤来确保读取顺序正确?
scylla - Scylla db json 支持使用 DEFAULT UNSET 指令进行插入不起作用
我正在尝试使用 DEFAULT UNSET 指令执行以下插入语句,但在语句中出现语法错误。我正在使用 scylla 2.3.1。我尝试了 Apache Cassandra 和 DSE 中的语法。它在那里工作。
CREATE TABLE user (id int primary key, name text, email text)
INSERT INTO user JSON '{"id": 1, "name": "Sam"}' DEFAULT UNSET
以下语句适用于 scylla。
INSERT INTO user JSON '{"id": 1, "name": "Sam"}';
我在 scylla.yaml 中打开了实验标志来激活 json 支持。
presto - Presto Cassandra 连接器:连接数
我正在考虑增加 Presto 与 ScyllaDB 的连接数量。我正在使用 Presto 的 Cassandra 连接器连接到 ScyllaDB。我在文档中看不到任何可用于增加连接数的属性。https://prestodb.io/docs/current/connector/cassandra.html
这是我的 scylladb.properties 文件
Presto 与 cassandra/scylladb 建立的默认连接数是多少?如何设置此属性?谢谢
unicode - 无法使用 cqlsh 将 UTF-8 数据复制到 ScyllaDB
我正在尝试将一个大型数据集从 Postgresql 复制到 ScyllaDB,它应该与 Cassandra 兼容。
这就是我正在尝试的:
我得到一个没有堆栈跟踪的模糊错误:
:1:'ascii' 编解码器无法解码位置 9 中的字节 0xc3:序数不在范围内(128)
我的数据和列名,包括已经在 ScyllaDB 中创建的表中的那些,包含带有德语文本的值。它不是 ASCII,但我还没有找到任何设置编码的地方,而且在我看来它似乎utf-8
已经在使用的任何地方。我也试过这个,并在 1135 行附近看到,并在我的本地 cqlsh 中更改它(使用vim $(which cqlsh)
),但它没有效果。
我正在使用cqlsh 5.0.1
,使用 pip 安装。(奇怪的是pip install cqlsh==5.0.4
)
我还尝试了我用来安装 ScyllaDBcqlsh
的docker 映像,它有完全相同的错误。
<Update>
按照建议,我将数据通过管道传输到文件中:
我将其细化到第一行(CSV 标题)。用管道让它cqlsh
哭泣同样的错误。然后,使用 python3.5 交互式 shell,我这样做了:
所以我们\xc3
在肉体中。是 UTF-8 吗?
是的,它是utf-8
。那么错误是如何发生的呢?
相同的错误文本,所以它也可能是 Python,但没有堆栈跟踪,我不知道这是在哪里发生的,默认编码是utf-8
. 我尝试使用覆盖默认值,utf-8
但没有任何改变。不过,在某个地方,有些东西正在尝试使用 ASCII 解码流。
这是locale
服务器/客户端上的:
Slack 上的某个人提出了这个答案UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 2: ordinal not in range(128)
一旦我cqlsh.py
在开头添加了最后两行,它就解决了解码问题,但是同一列被报告为无效并出现另一个错误:
:1:无效的列名 Ist Einpöster
边注:
在这一点上,我对这个测试失去了兴趣,我只是想让一个没有答案的问题,所以请原谅等待时间。当我尝试将其作为分析引擎与 Spark 结合作为 Tableau 的数据源时,我发现了“更好”的替代方案,例如 Vertica 和 ClickHouse。“更好”是因为它们都有局限性。
</更新>
如何完成此导入?
scylla - Scylladb 是否需要与数据集一样多的内存?
看看compose.com 上对 Scylla 的描述,它说:
Scylla 需要快速 IO 和与总数据大小一样多的 RAM。
然而,查看已发布的架构,它似乎不需要与刷新到磁盘的总数据大小一样多的 RAM:
Scylla 将数据保存在磁盘上。对 Scylla 的写入最初在内存表中累积在 RAM 中,在某些时候会刷新到磁盘上的 sstable 并从 RAM 中删除。
对于吹捧极端性能的项目来说,似乎很传统,不提及获得该性能所需的任何调整(例如,通过关闭基准测试的这些功能来牺牲数据安全,或者不提及您必须将所有内容都放入 RAM 中才能实现已发布的结果) .
我想知道是不是所有东西都需要适合内存,或者只有当它都适合内存时才能获得基准测试结果,或者 compose.com 完全错误(或过时)?
不幸的是,谷歌搜索这个问题并没有给出明确的答案,所以我认为关于 SO 的问题可以防止其他人混淆。
cassandra - 几乎完整的 Cassandra 节点中的清理空间
我有一个 Cassandra 集群(2 个 DC),每个节点有 6 个节点,RF 2。4 个节点(在每个 DC 中)已满,所以我需要很快清理空间。
我试图进行全面修复,但由于空间开始增加更多并且修复最终被挂起,因此这是一个坏主意。作为最后的解决方案,我正在考虑开始修复,然后从最小到最大清理特定列。
IE
您认为此过程对数据安全吗?
谢谢