从事务日志中提取事务类型

Posted

技术标签:

【中文标题】从事务日志中提取事务类型【英文标题】:pulling type of transaction out of transaction log 【发布时间】:2017-03-10 11:43:11 【问题描述】:

我有一个问题,数据来自相关数据库,但没有内置识别交易类型(A-only、B-only 或 A&B)的功能。

我在 R 中以不相关的结构工作。 交易日志是一个带有文章的日志(有 Maingroups),还有一行用于支付类型(留空)。根据主组,它是 A 或 B 观察。

我已经编写了一小部分代码来检查。我的问题是我想摆脱这个告诉我的集合:

事务 1 仅限 A 事务 2 仅限 B 事务 3 是 A&B 事务 4 是 A&B

我必须在包含大约 1600 万个观测值的数据集上执行此操作。

trans.log <- c(1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4)
trans.log <- as.data.frame(trans.log)
trans.log$Maingroup <-c(1,1, "", 2, 4, "", 3, 1, 4, "", 1, 2, "")
trans.log[(trans.log$Maingroup %in% 1), "AorB"] <- "A"
trans.log[(trans.log$Maingroup %in% 2), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 3), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 4), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 6), "AorB"] <- "B"
trans.log[(trans.log$Maingroup %in% 7), "AorB"] <- "B"

【问题讨论】:

【参考方案1】:

昨晚之后,我找到了自己的遮阳篷。

trans.log1 <- trans.log %>% group_by(JournalHeaderId, AorB)
%>% summarise(aantal=n())

# nieuwe kolommen maken voor  de aantallen A / B per transactie
trans.log2 <- trans.log1 %>% spread(AorB, value = aantal)

# nieuwe kolommen maken voor als B is NA of F is NA 
trans.log3 <- trans.log2 %>% mutate(Bonly=(B>= 1 & is.na(A)),
                    Aonly=(A>=1 & is.na(B)), AB=(B>=1 & A>=1), 
                    NonX=(NX>=1), other = (is.na(B) & is.na(A) & is.na(NX)))

【讨论】:

以上是关于从事务日志中提取事务类型的主要内容,如果未能解决你的问题,请参考以下文章

SQL 从事务日志中恢复数据

事务--04---MySQL事务日志----Undo日志

从 SQL Server 的事务日志中删除信息

使用事务日志回滚事务

如何通过代码从 Azure 应用程序洞察中获取事务日志?

是否可以从活动(大量数据移动)存储过程中释放事务日志锁?