小编bel*_*oir的帖子

PostgreSQL到数据仓库:近实时ETL /数据提取的最佳方法

背景:

我有一个PostgreSQL(v8.3)数据库,它针对OLTP进行了大量优化.

我需要半实时地从中提取数据(有些人必然要问半实时意味着什么,答案是我合理的频率但是我会务实,因为基准可以说我们希望每15分钟一次并将其送入数据仓库.

多少数据?在高峰时段,我们正在谈论每分钟大约80-100k行击中OLTP侧,非高峰时这将大幅下降到15-20k.最频繁更新的行每个约64个字节,但有各种表等,因此数据非常多样化,每行最多可达4000个字节.OLTP处于活动状态24x5.5.

最佳方案?

从我可以拼凑起来的最实用的解决方案如下:

  • 创建TRIGGER以将所有DML活动写入旋转的CSV日志文件
  • 执行所需的任何转换
  • 使用本机DW数据泵工具将转换后的CSV高效泵入DW

为什么这种做法?

  • TRIGGERS允许选择性表格成为目标,而不是系统范围+输出可配置(即成为CSV),并且相对容易编写和部署.SLONY使用类似的方法,开销是可以接受的
  • CSV易于快速转换
  • 易于将CSV泵入DW

考虑的替代方案......

  • 使用本机日志记录(http://www.postgresql.org/docs/8.3/static/runtime-config-logging.html).问题是它相对于我需要的看起来非常冗长,并且解析和转换有点棘手.然而,它可能更快,因为我认为与TRIGGER相比,开销更少.当然它会使管理员更容易,因为它是系统范围的,但同样,我不需要一些表(一些用于持久存储我不想记录的JMS消息)
  • 直接通过ETL工具(如Talend)查询数据并将其泵入DW ...问题是OLTP模式需要调整以支持这一点并且有许多负面的副作用
  • 使用经过调整/攻击的SLONY - SLONY可以很好地记录日志并将更改迁移到从站,因此概念框架就在那里,但建议的解决方案似乎更简单,更清洁
  • 使用WAL

有没有人这样做过?想分享你的想法?

postgresql etl near-real-time data-warehouse data-extraction

14
推荐指数
1
解决办法
8594
查看次数

在python中处理yEd graphml文件

我想在yEd创建的graphml文件中获取所有节点和一些属性(例如标签名称)的列表,而不管它们在图形中的位置.这与已经部分地处理(在蟒蛇networkx处理XML文件如何循环GraphML与LXML文件),但不是当内YED你"团"节点-和我有很多分组分组内.

尝试过networkx和lxml,但没有使用建议的简单方法获得完整的结果集 - 任何关于优雅解决方法的建议以及使用哪个库都不能递归地迭代树并识别组节点并再次向下钻取.

例:

当您有分组时,使用networkx的非常简单的图表的示例输出:

('n0', {})
('n1', {'y': '0.0', 'x': '26.007967509920633', 'label': 'A'})
('n0::n0', {})
('n0::n1', {})
Run Code Online (Sandbox Code Playgroud)

简单表示图形

python graphml

8
推荐指数
1
解决办法
3048
查看次数