问题标签 [snappydata]
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.
join - SnappyData 与索引并置连接
我想在 SnappyData 中的两个表上进行并置连接,为了进一步加快连接速度,如果我还在两个表的连接列上创建索引会有所帮助吗?
更具体地说,这两个表会非常大,如果在大规模上它是成对分区连接,并且在每对分区中,可以使用索引嵌套循环连接代替天真的嵌套循环,这对我来说是理想的加入。
我无法找到这方面的示例或教程,任何解释或指示将不胜感激。
提前致谢!
更新:
这两个表在#rows 方面很大,并且表的列很少(3 - 4 列,所有整数类型):
我想加入并Table1
获得类似的结果Table2
Col_B
因此,我更喜欢水平分区(使用行表)连接列上的两个连接表Col_B
,而不是使用列表。并使用 co-located join 来减少数据混洗。
即使分区后,分区可能仍然太大,因此我想知道是否可以在每个分区中独立创建索引Col_B
并将其用于索引连接?在我看来,在 SnappyData 中,我只能在整个列上创建索引,而不是为每个分区独立创建索引。
java - SnappyData(表未显示在集群中)
我已经为 Java 中的快速数据创建了一个程序。我无法在集群中获取表名。我也无法理解日志文件。有什么提示吗?
sql - sql 从另一个表 snappydata 更新表
嗨,我正在使用 SnappyData 的 sql 实用程序从另一个表更新我的表,比如Table_A
使用来自Table_B
.
理想情况下,MERGE将是理想的(如果匹配则更新,或者如果带有键的行不存在则插入Table_A
)
但是 SnappyData(或 Gemfire)不支持 MERGE,因此我计划先插入一个外连接来处理新的 col_key 行,然后更新以更新Table_A
同样col_key
出现在Table_B
.
然而, Gemfire似乎也不支持“update ... set ... from ...”
那么有没有办法在 SnappyData sql 语句中实现“update .. set .. from ..”?提前致谢 :)
sql - SnappyData SQL PUT INTO 不更新值
您好我正在使用 SnappyData 并尝试使用以下Table_A
行进行更新Table_B
:
由于Table_B
将包含 (key1, key2) 中已存在的值Table_A
,因此应替换Table_A
. 所以我使用“ PUT INTO ”而不是“INSERT INTO”语句来更新存储在Table_A
我的 PUT INTO 语句如下所示:
但是 中的行Table_B
没有出现在 中Table_A
。
但是,如果我直接插入值:
行 (1, 1, 1) 确实出现在Table_A
. 如果我使用插入:
中的行Table_B
显示在 中Table_A
,直到出现 dup key 错误并且我的程序退出。
我尝试了单列主键(即key1),但仍然没有运气。
那么我在这里做错了什么?还是“PUT INTO”不起作用或“PUT INTO”语句有延迟?
更新:
我使用的是 SnappyData 本地模式,我只是尝试了集群模式并在这里遇到了一些错误(奇怪的是它不会在本地模式下抛出错误,而是它只是不能静默工作。)
sql - SnappyData snappy-sql PUT INTO 导致错误:spark.sql.execution.id 已设置
我正在使用 SnappyData SQL shell(snappy-sql) 并运行 sql 语句 (PUT INTO) 并遇到错误:
这就是我所做的:从https://www.snappydata.io/download (v0.8) 下载 SnappyData 二进制文件。解压,跑
搜索错误(spark.sql.execution.id 已设置)导致此处: https ://issues.apache.org/jira/browse/SPARK-13747 (SQL 中的并发执行不适用于 Scala ForkJoinPool)似乎是 Spark 2.2.0 中修复的错误。
这可能是由于 SnappyData 仍在使用 spark 2.0(至少现在在 github 中它说已移至 spark 2.0)。但我不确定。
现在,如果可能,我尝试使用PUT INTO
SnappyData 中的语句,如果有人可以帮助我解决这个问题,我将不胜感激。提前致谢 :)
join - SnappyData 并置连接在一个物理服务器设置中
我正在连接两个表,其中 SnappyData 中的大量行(当前为 100M - 1B)配置在一台具有 64 个 CPU 内核和 512GB 内存的服务器中,并且希望使用并置连接。然而,文档中的描述似乎暗示并置连接发生在每个节点级别。
我需要的实际上是每个桶级别的并置连接(或分区连接),并且我没有充分利用服务器,因为大部分时间总 CPU 利用率约为 10% 或更少。
对于连接,我使用的是 Rowstore 和 SQL 语句。我使用单节点设置脚本 (snappy-start-all.sh) 设置了 SnappyData,其中包含一个线索、一个服务器和一个定位器,并进行了一些自定义以使用更多的内存和 CPU 内核:
会议/领导
配置/服务器
conf/定位器
我无法弄清楚如何解决这个问题,我的问题是:
- 并置连接究竟是如何工作的?并置连接发生在每个节点级别或每个存储桶级别还是介于两者之间?除了设置桶号之外,我还有什么可以调整的吗?
- 除了并置连接之外,在连接列上创建索引是否有帮助?
- 配置是否适合我的工作量?还是应该设置多个服务器以充分利用资源?
- 如果我的设置看起来没问题,低 CPU 利用率可能是由于偏斜的哈希分区方案,我在哪里可以调整分区方案以避免偏斜分区?
任何关于上述任何问题的信息或指针(很抱歉在一篇文章中提出了很多问题)将不胜感激:)
更新:
两行表的 schema 是这样的(列都是 Integer 类型):
连接结果将包含: Table_C(key1, key2, value1, value2, value3, value4, value5)
key1 可以是~200 个不同的值,key2 可以是~2M 个不同的值。并且 (key1, key2) 分布是倾斜的并且不是唯一的——少数(<5%)非常频繁,而大多数不是。
java - snappydata 无法使用 Java 的 Smart Connector 从现有 Spark 安装访问 SnappyData 存储
我尝试通过智能连接器样式连接到 SnappyData 存储,如http://snappydatainc.github.io/snappydata/howto/#how-to-access-snappydata-store-from-an-existing-spark-installation-using中的描述-smart-connector,但得到了由 java.nio.BufferUnderflowException 引起的 com.gemstone.gemfire.SerializationException 根。
这是堆栈跟踪:
这是代码:
这是集群中的配置:
csv - SnappyData 将数据从多个 csv 文件导入列或行表
我是 SnappyData 的新手,我正在尝试将大量数据导入其中。因此,数据是从不同的来源创建的,并以 csv 文件的形式存储到每个位置的 zip 文件中。假设 zip 的结构是 zip1、zip2... zipn,每个 zip 包含完全相同的(header.csv、detail1.csv、detail2.csv、... detail15.csv)每个 .csv 具有相同的结构,这意味着来自 zip1 的 detail5.csv 与来自 zipn 的 detail5.csv 具有相同的列。所以我的问题是如何自动化导入?这样一堆数据有导入命令吗?第一次很容易,因为我使用创建外部表,但是如何导入其余的 idata?或者,更好的是,我如何将所有数据导入列(因为我们有很多数据)或行(因为我们可以根据数据来自的位置对数据进行分区)表?
postgresql - SnappyData 数据类型兼容性
当我创建一个新数据库并将架构结构从 Postgresql 导入到 SnappyData 时,我正在处理关于使用什么来替换每种数据类型的问题。首先,使用什么来获得与时间戳、实数、双精度、长(坐标)和字符串兼容的数据?我在帮助和文档中进行了搜索,但没有找到一个很好的解释......