问题标签 [phantom-dsl]

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.

0 投票
1 回答
431 浏览

scala - Phantom DSL 问题集包含和排序

我已经使用 Phantom DSL 编写了这个 scala 代码来查询 cassandra

它有效,但我有几个问题

  • 设置包含

查询集合是否包含值时。像我所做的那样建立查询条件是否正确?基本上,对于我们要检查的每个值,我都有一个 AND 子句。这可以一次性完成吗

  • 排序

我无法生成排序查询。当我尝试做

代码甚至无法编译

0 投票
1 回答
337 浏览

logging - 如何使用 Phantom 在 Akka-Http 中更改日志级别

我有一个带有Akka-http 2.4.2com.websudos.phantom 1.22.0
的新项目, 一切正常,但我不知道如何将日志级别更改为 INFO,因此幻像的调试日志如下:

17:00:51.792 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Connection - Connection[/192.168.120.24:9042-1, inFlight=0, closed=false] 在 30 秒内处于非活动状态,发送心跳 17:00:51.931

[cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Connection - Connection[/192.168.120.24:9042-1, inFlight=0, closed=false] 心跳查询成功

17:07:27.387 [system-akka.actor.default-dispatcher-10] 调试 com.websudos.phantom - 执行查询:SELECT * FROM table1 WHERE user = '1_1003600499' LIMIT 1;

被控制台忽略。

我可以将此配置放在文件application.conf中吗?如果是这样,怎么做?

解决方案:
正如@flavian 回答(并且几乎没有修改)
1)在资源文件夹中创建一个文件 logback.xml
2)复制并粘贴以下配置

这将使日志仅在控制台上显示INFO 级别

0 投票
1 回答
344 浏览

scala - 如何使用 phantom-dsl for cassandra 在查询子句中以编程方式指定列

我需要根据用户输入创建动态查询子句,即在查询中动态指定列。所有的例子都是形式

.where(_.id eqs myUuid)

但是我需要一些类似的东西

.where('id' eqs myUuid)

这是不可能的。有没有办法使用 phantom-dsl 动态指定查询列?

0 投票
1 回答
289 浏览

json - phantom-dsl Collection 列上带有 json4s 的 JSON 序列化程序

一直在关注需要 json 序列化程序的 phantom-dsl的集合列教程。

下面的实现得到以下错误输出;

发现:org.dyne.danielsan.superchain.data.models.JsonVin

[错误] 必需:org.json4s.JValue

[错误](扩展为)org.json4s.JsonAST.JValue

[错误] 紧凑(渲染(obj))

任何帮助指出我哪里出错了,非常感谢。问题是 AFAIK phantom-dsl 需要定义自定义类型,但 json4s 期望 JValue ...

更正

感谢弗拉维安的评论。你是对的。最后,这是使用 Json4s 所需要的:

0 投票
3 回答
407 浏览

scala - ERROR com.websudos.phantom - Batch too large

I am getting the following error:

Have re-run the code and getting this error at the following point each time:

Thanks in advance for any insights.

+++ UPDATES +++

So the offending code is

The following shows the inserting functions for Transaction and there is similar code for the Block.

Have tried to follow

https://medium.com/@foundev/cassandra-batch-loading-without-the-batch-keyword-40f00e35e23e#.7zdd0qopv

&&

https://github.com/outworkers/phantom/wiki/Batch-statements

But am still struggling to find an implementation that does not lead to the Batch too large errors.

0 投票
1 回答
667 浏览

cassandra - CQL:选择所有行,不同的分区键

我有一张桌子

Userid 可用于在另一个表中查找完整的用户详细信息。该表将提供用户利润的历史记录。取最近的一个来找到他们当前的利润金额。

如何检索 10 个最赚钱的用户及其利润金额。我希望它根据用户 ID 不同

谢谢。

0 投票
0 回答
142 浏览

solr - 以编程方式使用 DataStax 搜索(DataStax 驱动程序或幻像)

除了纯字符串查询/准备好的语句之外,目前有没有一种方法可以从应用程序中使用 DataStax 搜索?

如果是,是否有示例/教程?

如果没有,是否有计划在未来集成此功能?

DataStax 或 phantom DSL 都很棒。

0 投票
1 回答
2539 浏览

apache-spark - 如何有效地从 Cassandra 读取数百万行?

我有一项艰巨的任务是从 Cassandra 表中读取数百万行。实际上这个表包含大约 40~50 百万行。数据实际上是我们系统的内部 URL,我们需要触发所有这些 URL。为了启动它,我们使用了 Akka Streams,它运行得非常好,根据需要做一些背压。但是我们仍然没有找到一种有效阅读所有内容的方法。

到目前为止,我们已经尝试过:

  • 使用 Akka Stream 将数据作为 Stream 读取。我们正在使用为特定表提供发布者的 phantom-dsl。但它并没有阅读所有内容,只阅读了一小部分。实际上它在第一个 100 万之后停止阅读。

  • 在特定日期使用 Spark 阅读。我们的表被建模为一个时间序列表,有年、月、日、分钟……列。现在我们是按天选择的,所以 Spark 不会获取很多要处理的东西,但是这些天选择是一件很痛苦的事情。

代码如下:

不幸的是,我无法遍历分区以获取更少的数据,我必须使用收集,因为它抱怨演员不可序列化。

我想知道你们中是否有人有这样的经验来阅读数百万行来做与聚合等不同的事情。

我还考虑阅读所有内容并发送到 Kafka 主题,在那里我将使用 Streaming(spark 或 Akka)接收,但问题是一样的,如何有效地加载所有这些数据?

编辑

目前,我正在一个具有合理内存量 100GB 的集群上运行,并对其进行收集和迭代。

此外,这与使用 spark 获取大数据并使用 reduceByKey、aggregateByKey 等进行分析大不相同。

我需要通过 HTTP 获取和发送所有内容 =/

到目前为止,它的工作方式与我一样,但我担心这些数据会变得越来越大,以至于将所有内容都提取到内存中毫无意义。

流式传输这些数据将是最好的解决方案,分块获取,但我还没有找到一个好的方法。

最后,我正在考虑使用 Spark 来获取所有这些数据,生成一个 CSV 文件并使用 Akka Stream IO 来处理,这样我会驱逐很多东西,因为它需要几个小时来处理每个百万。

0 投票
1 回答
697 浏览

scala - 使用 Cassandra 和 Phantom DSL 进行部分插入

我正在构建一个简单的 Scala Play 应用程序,它使用 Scala 的 Phantom DSL 驱动程序将数据存储在 Cassandra DB 中。Cassandra 的优点之一是您可以进行部分更新,即只要您提供键列,您就不必为表中的所有其他列提供值。Cassandra 将根据密钥将数据合并到您现有的记录中。

不幸的是,这似乎不适用于 Phantom DSL。我有一个包含几列的表,我希望能够进行更新,仅为键和数据列之一指定值,并让 Cassandra 像往常一样将其合并到记录中,同时保留所有其他数据列对于该记录不变。

但是,如果您未在插入/更新语句中指定值,Phantom DSL 会用 null 覆盖现有列。

有人知道解决方法吗?我不想每次都读取/写入所有数据列,因为最终数据列会非常大。

仅供参考,我使用与以下示例相同的方法进行幻像编码:

https://github.com/thiagoandrade6/cassandra-phantom/blob/master/src/main/scala/com/cassandra/phantom/modeling/model/GenericSongsModel.scala

0 投票
1 回答
412 浏览

scala - MapColumn、SetColumn、JsonColumn 类型需要所有者和记录。这些值实际上是什么?

例如,我有

K并且V很明显,但所有者和记录?我应该在那里输入什么?