PDI 5.3的Cassandra数据查询问题
Cassandra data query problems with PDI 5.3
我有一个 Cassandra 安装,其中包含 table 不超过 110k 条记录。
我在使用 PDI 5.3(最新版本)查询数据时遇到了很多麻烦。我经常在 Cassandra 方面失去记忆。
虽然我安装的 Cassandra 服务器不是最好的,只有 4Gb RAM 和 2 个内核,但我仍然希望能够毫无问题地执行这个简单的任务。
在 cassandra /conf/cassandra-env.sh
中,我配置了:
MAX_HEAP_SIZE="4G"
HEAP_NEWSIZE="200M"
现在我可以查询的最大行数是 80k。
文档建议将 MAX_HEAP_SIZE 设置为机器 RAM 的 1/4。但对我来说,这意味着 1G 并且只有大约 20k 行要查询。
我可以通过在 PDI 的 Cassandra input
步骤中使用 limit
关键字限制 select 来判断我可以查询多少行。
我可以调整任何其他参数以获得更好的性能吗?这是一个开发服务器,在生产环境中,我预计会有超过 100 万行的查询。
安装 Cassandra 的服务器:Red Hat Enterprise Linux 服务器版本 6.6 (Santiago)
Cassandra 版本:apache-cassandra-2.1.2
编辑:版本已更新。
为内存牺牲 IO(因为内存正在杀死你):
- 降低键/行缓存(如果启用)(键缓存默认打开)
- 如果您执行大量删除操作,您可以降低 gc_grace_seconds 以更快地删除墓碑(假设您在获取 80k 行时进行了多次范围扫描,这会有所帮助)
一些其他想法:
- 分页(Select 80k 的 0-10k,然后 10-20k 等
- 检查内存表的大小,如果它们太大,请降低它们。
- 使用跟踪来验证您正在检索的内容 (tombstones can cause lots of overhead)
This thread 建议降低 commit_log 大小,但是提交日志在 2.1 中进行了大量修改并从堆中移出,应该不再是这样的问题了。
我有一个 Cassandra 安装,其中包含 table 不超过 110k 条记录。
我在使用 PDI 5.3(最新版本)查询数据时遇到了很多麻烦。我经常在 Cassandra 方面失去记忆。
虽然我安装的 Cassandra 服务器不是最好的,只有 4Gb RAM 和 2 个内核,但我仍然希望能够毫无问题地执行这个简单的任务。
在 cassandra /conf/cassandra-env.sh
中,我配置了:
MAX_HEAP_SIZE="4G"
HEAP_NEWSIZE="200M"
现在我可以查询的最大行数是 80k。 文档建议将 MAX_HEAP_SIZE 设置为机器 RAM 的 1/4。但对我来说,这意味着 1G 并且只有大约 20k 行要查询。
我可以通过在 PDI 的 Cassandra input
步骤中使用 limit
关键字限制 select 来判断我可以查询多少行。
我可以调整任何其他参数以获得更好的性能吗?这是一个开发服务器,在生产环境中,我预计会有超过 100 万行的查询。
安装 Cassandra 的服务器:Red Hat Enterprise Linux 服务器版本 6.6 (Santiago)
Cassandra 版本:apache-cassandra-2.1.2
编辑:版本已更新。
为内存牺牲 IO(因为内存正在杀死你):
- 降低键/行缓存(如果启用)(键缓存默认打开)
- 如果您执行大量删除操作,您可以降低 gc_grace_seconds 以更快地删除墓碑(假设您在获取 80k 行时进行了多次范围扫描,这会有所帮助)
一些其他想法:
- 分页(Select 80k 的 0-10k,然后 10-20k 等
- 检查内存表的大小,如果它们太大,请降低它们。
- 使用跟踪来验证您正在检索的内容 (tombstones can cause lots of overhead)
This thread 建议降低 commit_log 大小,但是提交日志在 2.1 中进行了大量修改并从堆中移出,应该不再是这样的问题了。