我正在尝试构建一个ETL流程,该流程将数据提取到GemFire中并加载到Teradata中。但是,我找不到导出数据的良好机制。到目前为止,我发现的唯一一件事是rest api,它从一个区域获取所有条目。但是,这对批量出口有利吗?它将以json形式返回数据,在将其加载到表中之前必须对其进行解析,我认为对于大量数据而言,性能不是很高。还有其他解决方案吗?是否喜欢从GemFire将数据导出为csv?还是与GemFire的ODBC / JDBC连接?我在Gemfire XD文档中找到了批量导出和ODBC / JDBC,但在核心GemFire中却找不到?那么核心GemFire不支持它们吗?核心GemFire和XD版本有什么区别?
答案 0 :(得分:0)
这是两种设计不同的产品,它们具有不同的含义。 GemFire XD为内存中的表数据提供了一个低延迟SQL接口,因此通常用作内存中的RDBMS。另一方面,GemFire是一个内存中的数据网格,对于插入到区域中的数据没有任何限制,基本上,您处理的是自定义Java对象,而不是表。另外,我知道GemFire XD过去是在GemFire之上构建的,不确定其当前状态是什么(您可能想看看Snappy Data以了解更多详细信息)。
也就是说,严格来说,您可以导出GemFire的区域快照,然后将其导入到另一个集群中。更好的是,您可以逐项读取快照条目,以进行进一步处理或转换为其他格式,我相信这正是您所需要的。请查看Cache and Region Snapshots以获得详细信息。
希望这会有所帮助。干杯。