目前我在将数据从mysql同步到hbase时遇到问题,我需要从mysql到hbase的近乎实时的数据同步,我需要在数据同步期间将多个mysql表合并到一个hbase表中。
我试过sqoop看起来不能满足我们的要求。
那么我的案例是否可以使用任何现有的工具/库,或者我可以尝试使用spark的任何其他解决方案。
答案 0 :(得分:2)
考虑在HBase上使用Apache Phoenix。它将为存储在HBase中的数据提供低延迟的SQL查询(因此适用于OLTP并且易于用于OLAP),因此您不必担心同步。它还具有NoSQL功能,例如在查询时间内动态添加列的功能。
为了满足您的使用案例,您可以在读取副本上运行Phoenix for OLTP和Phoenix的第二个实例,以便为OLAP运行表连接。
http://www.cloudera.com/documentation/enterprise/5-4-x/topics/admin_hbase_read_replicas.html
Secondary replicas are refreshed at intervals controlled by a timer (hbase.regionserver.storefile.refresh.period), and so are guaranteed to be at most that interval of milliseconds behind the primary RegionServer.
此解决方案满足您对OLTP,OLAP和近实时同步的要求,同时提供您不容易使用MySQL的事务性数据库可伸缩性。 Apache Phoenix还提供与Hadoop生态系统的完全集成,因此它可以与您当前的分析堆栈很好地集成。