Data Science Wire

放弃XStream吧,聊聊我们怎么用自研的TLA组件搞定Oracle日志解析

Reddit r/ETL5d4 min read

放弃XStream吧,聊聊我们怎么用自研的TLA组件搞定Oracle日志解析 先交代一下背景。我们团队一直在做数据库事务日志解析这块的技术,说白了就是CDC(Change Data Capture)最底层的那层——把Oracle的redo log啃下来,解析成业务能理解的数据变更事件。 之前调研过市面上几乎所有方案,LogMiner太慢这个大家都知道,OGG太贵这个大家也知道。后来我们把目标锁定在Oracle XStream上,研究了一圈,踩了不少坑,最终还是决定自己撸一套组件,也就是现在这个TLA(Transaction Log Analysis)。 这篇文章不吹不黑,纯技术层面的记录。把XStream的问题和我们自己实现方案的一些思路写出来,给正在做类似选型的同行们参考。 XStream到底是什么?官方说法和实际情况 看Oracle官方文档,XStream被描述成一套API,允许外部应用直接接入数据库的变更流。它比LogMiner先进的地方在于,LogMiner是等redo log落地成文件后再去读,而XStream在事务提交的时候就能把事件扔到内存的Stream Pool里,外部程序可以直接消费。 听起来很美好对吧?实际用起来是另一回事。 首先最劝退的就是授权问题。 XStream虽然是Oracle数据库自带的,但你要正经用起来搞数据同步,必须要有OGG(Oracle Gol

Read the full story at Reddit r/ETL

More in Data Engineering