[jira] [Created] (FLINK-20955) Refactor HBase Source in accordance with FLIP-27

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-20955) Refactor HBase Source in accordance with FLIP-27

Shang Yuanchun (Jira)
Moritz Manner created FLINK-20955:
-------------------------------------

             Summary: Refactor HBase Source in accordance with FLIP-27
                 Key: FLINK-20955
                 URL: https://issues.apache.org/jira/browse/FLINK-20955
             Project: Flink
          Issue Type: Improvement
          Components: Connectors / HBase
            Reporter: Moritz Manner
             Fix For: 1.12.0


The HBase connector source implementation should be updated in accordance with [FLIP-27: Refactor Source Interface|https://cwiki.apache.org/confluence/display/FLINK/FLIP-27%3A+Refactor+Source+Interface].

One source should map to one table in HBase. Users can specify which column[families] to watch; each change in one of the columns triggers a record with change type, table, column family, column, value, and timestamp.
h3. Idea

The new Flink HBase Source makes use of the internal [replication mechanism of HBase|https://hbase.apache.org/book.html#_cluster_replication]. The Source is registering at the HBase cluster and will receive all WAL edits written in HBase. From those WAL edits the Source can create the DataStream. 
h3. Split

We're still not 100% sure which information a Split should contain. We have the following possibilities: 
 # There is only one Split per Source and the Split contains all the necessary information to connect with HBase. The SourceReader which processes the Split will receive all WAL edits for all tables and filters the relevant edits. 
 # There are multiple Splits per Source, each Split representing one HBase Region to read from. This assumes that it is possible to only receive WAL edits from a specific HBase Region and not receive all WAL edits. This would be preferable as it allows parallel processing of multiple regions, but we still need to figure out how this is possible.


In both cases the Split will contain information about the HBase instance and table. 
h3. Split Enumerator

Depending on which Split we'll decide on, the split enumerator will connect to HBase and get all relevant regions or just create one Split.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)