aggregate各州的文件:
'aggregate.formula'是'aggregate.data.frame'的标准公式接口.
我是R的新手,我不明白这意味着什么.请解释!
谢谢!
乌里
我有两个整数向量.我想确定在由第一个载体调节的第二个载体中呈现的连续整数序列的间隔(该载体可以看作是一个因子,通过该因子,第二个载体可以分成几个组).
在这里,我为我的问题提出了一个假人.
在第二个向量的一组(由第一向量定义)中的数据,整数单调增加.
my.data <- data.frame(
V1=c(rep(1, 10), rep(2, 9), rep(3,11)),
V2=c(seq(2,5), seq(7,11), 13, seq(4, 9), seq(11,13), seq(1, 6), seq(101, 105))
)
Run Code Online (Sandbox Code Playgroud)
我想要的是:
预期成绩:
1, 2, 5 \n
1, 7, 11 \n
1, 13, 13 \n
2, 4, 9 \n
2, 11, 13 \n
3, 1, 6 \n
3, 101, 105 \n
Run Code Online (Sandbox Code Playgroud) 我需要帮助找到我的聚合根和边界.
我有3个实体:Plan,PlannedRole和PlannedTraining.每个计划都可以包含许多PlannedRoles和PlannedTraining.
解决方案1:起初我认为Plan是聚合根,因为PlannedRole和PlannedTraining在计划的上下文中没有意义.他们总是在计划之内.此外,我们有一个业务规则,即每个计划最多可以有3个PlannedRoles和5个PlannedTraining.所以我认为通过提名计划作为聚合根,我可以强制执行这个不变量.
但是,我们有一个搜索页面,用户可在其中搜索计划.结果显示了计划本身的一些属性(而不是PlannedRoles或PlannedTrainings).我想如果我必须加载整个聚合,它会有很多开销.有近3000个计划,每个计划可能有几个孩子.将所有这些对象加载到一起然后忽略搜索页面中的PlannedRoles和PlannedTraining对我来说没有意义.
解决方案2:我刚刚意识到用户还需要2个搜索页面,他们可以搜索计划角色或计划培训.这让我意识到他们正试图独立地访问这些对象并"脱离"Plan的背景.所以我认为我的初始设计错了,这就是我想出这个解决方案的方法.所以,我认为这里有3个聚合,每个实体有1个聚合.
这种方法使我能够独立搜索每个实体,并解决了解决方案1中的性能问题.但是,使用这种方法我不能强制执行前面提到的不变量.
还有另一个不变量,即只有在具有特定状态时才能更改计划.因此,我不能将任何PlannedRoles或PlannedTrainings添加到不处于该状态的计划中.同样,我不能用第二种方法强制执行这种不变量.
任何建议将不胜感激.
干杯,莫什
我正在使用PostgreSQL 9.1,我有这样的数据结构:
A B
-------
1 a
1 a
1 b
1 c
1 c
1 c
1 d
2 e
2 e
Run Code Online (Sandbox Code Playgroud)
我需要一个产生这个结果的查询:
1 4 {{c,3},{a,2},{b,1},{d,1}}
2 1 {{e,2}}
Run Code Online (Sandbox Code Playgroud)
A = 1,4行总共A = 1,部分计数(3行带c值,2行带值,.....)
数组所需的排序基于每个组的计数(如示例3,2,1,1).
我经常需要计算R数据帧的新列(长格式),其值应取决于组的聚合函数(例如总和).例如,我可能想知道任何一天产品占销售额的比例:
daily fraction = revenue for product i on day d / sum or revenue for all products on day d
Run Code Online (Sandbox Code Playgroud)
我目前的策略是总结和加入:
library(dplyr)
join_summary <- function(data, ...) left_join(data, summarise(data, ...))
data = data.frame(
day = c(1,1,2,2,3,3),
product = rep(c("A", "B"), 3),
revenue = c(2, 4, 8, 7, 9, 2)
)
data2 <- data %>%
group_by(day) %>%
join_summary(daily_revenue = sum(revenue)) %>%
mutate(revenue_fraction = revenue / daily_revenue)
Run Code Online (Sandbox Code Playgroud)
这有效,但我不确定它是否是反模式.在多行上重复相同的数据(每日收入)似乎有点低效,使用聚合乱丢我的数据框.我的问题是:
dplyr更广泛的Hadleyverse 工具?join_summary,还是可以用现有的dplyr动词完成?(不过我更喜欢呆在"管道流"中.)我正在遵循Flink的快速入门示例:监视Wikipedia编辑流。
该示例使用Java,并且正在Scala中实现,如下所示:
/**
* Wikipedia Edit Monitoring
*/
object WikipediaEditMonitoring {
def main(args: Array[String]) {
// set up the execution environment
val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
val edits: DataStream[WikipediaEditEvent] = env.addSource(new WikipediaEditsSource)
val result = edits.keyBy( _.getUser )
.timeWindow(Time.seconds(5))
.fold(("", 0L)) {
(acc: (String, Long), event: WikipediaEditEvent) => {
(event.getUser, acc._2 + event.getByteDiff)
}
}
result.print
// execute program
env.execute("Wikipedia Edit Monitoring")
}
}
Run Code Online (Sandbox Code Playgroud)
但是,foldFlink中的功能已被弃用,aggregate建议使用该功能。
但我没有找到有关如何转换的过时的例子或教程fold来aggregrate。 …
我将脚步放在事件源模式上并试图弄清聚合的含义。我读过一些博客,现在我比以往任何时候都更加困惑。
根据我的推断,聚合应该以某种方式使用户能够在事件存储上运行不同的查询,以检索不同的事件流。
用例:
我想在发票上重播事件,我想查看特定员工在余额上执行的所有操作。
我想重播发票上的所有事件
我希望这些是有效的用例。
活动商店:
| event_id | invoice_id | EmployeeId | Event | Payload |
|----------|------------|------------|------------------|---------|
| 1 | 12345 | 12345 | Invoice_InReview | JSON |
| 2 | 12345 | 12345 | Invoice_Billed | JSON |
| 3 | 12345 | 45567 | Invoice_Paid | JSON |
| 4 | 12345 | 77341 | Invoice_Reversed | JSON |
| 5 | 12345 | 98421 | Invoice_Paid | JSON | …Run Code Online (Sandbox Code Playgroud) 我在 MongoDB 中有一个集合,其中包含一个字段“events”,它是一个数组。我需要为此编写一个聚合查询来检查事件数组不为空,但找不到方法来执行此操作。
我想要这样的东西:
db.collection.aggregate([
{
$match: {
events: {
"$empty": false
}
}
}
]);
Run Code Online (Sandbox Code Playgroud) 我有两个收藏
我只想查看我关注的用户的故事
这是我的数据库的一个例子
db = {
"follow": [
{
"_id": 1,
"start": "user1",
"end": "user2",
},
{
"_id": 2,
"start": "user2",
"end": "user3",
}
],
"story": [
{
"_id": 1,
"owner_id": "user2",
"updated_at": 1638090000,
"deleted_at": null
},
{
"_id": 2,
"owner_id": "user3",
"updated_at": 1638080000,
"deleted_at": null
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想要这样的查询。当然,这是错误的:
db.story.aggregate([
{
"$match": {
"deleted_at": null,
"updated_at": {
$gte: 1638081000
},
"owner_id": {
$in: [
db.follow.find({"start": "user1"})
]
}
}
}
])
Run Code Online (Sandbox Code Playgroud)
请注意,我希望所有这些都在一个查询中完成
在 mongo Playground 中查询:https://mongoplayground.net/p/ysRUDW4hRzh
我想知道如果域事件不是聚合状态更改的自然结果,如何实现它(在 DDD 中)。
我借用这篇文章的例子。
因此,假设我们需要一个像:TemperatureWasMeasured这样的事件,它可能是我们所做的某些建模的产物(例如在事件风暴会话中)。
此事件感觉像是某些读取操作的产物,而不是某些聚合的实际状态更改。
所以问题是: 这个事件在哪里以及如何有意义地被发射?。
我们可以创建一个实体或聚合,它可以有一个状态来计算读取次数,以便作为状态更改发出。但这真的有必要吗?
在现有的资源中,“领域事件”的定义似乎没有提到状态变化,而只是在领域中发生了一些事情。
那么测量的动作(在非量子力学环境中)被认为是一个域事件,就像TemperatureWasMeasured事件一样?
如果有人能澄清这些问题那就太好了,因为似乎没有明确的答案。
events domain-driven-design aggregate event-driven domain-events
aggregate ×10
r ×3
mongodb ×2
aggregates ×1
apache-flink ×1
arrays ×1
database ×1
dplyr ×1
event-driven ×1
events ×1
fold ×1
is-empty ×1
java ×1
join ×1
match ×1
postgresql ×1
scala ×1
sql ×1
summary ×1