[ 
https://issues.apache.org/jira/browse/HBASE-30399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wellington Chevreuil resolved HBASE-30399.
------------------------------------------
    Resolution: Fixed

> Add spark4 compatible streaming functionality
> ---------------------------------------------
>
>                 Key: HBASE-30399
>                 URL: https://issues.apache.org/jira/browse/HBASE-30399
>             Project: HBase
>          Issue Type: Sub-task
>          Components: hbase-connectors
>            Reporter: Wellington Chevreuil
>            Assignee: Wellington Chevreuil
>            Priority: Major
>
> The spark3 module has streaming via the deprecated DStream/StreamingContext 
> API (HBaseDStreamFunctions: hbaseBulkPut, hbaseBulkDelete, hbaseBulkGet, 
> hbaseForeachPartition, hbaseMapPartitions).
> This is to port the spark3 streaming capabilities using Spark 4's Structured 
> Streaming (DS V2) only. Additionally to port the sink implementation, we 
> should leverage Spark4 Structured Streaming MicroBatch and ContinuousStream 
> sources.
> The plan is to implement these as separate PRs, for further granularity and 
> ease of reviews:
> 1) Streaming sink — replaces spark3 hbaseBulkPut/hbaseBulkDelete 
> (STREAMING_WRITE)
> -2) MicroBatch source — new capability (no spark3 equivalent) using HBase 
> cell timestamps as offsets (MICRO_BATCH_READ)-
> -3) ContinuousStream source — new capability, implemented as a polling loop 
> over HBase (CONTINUOUS_READ)-
> The enrichment-lookup pattern from spark3 (hbaseBulkGet/hbaseMapPartitions) 
> is covered without new classes: users call foreachBatch and use the existing 
> batch read API to join/enrich. Ex:
> {code:java}
> val stream = spark.readStream.format("kafka")...load()
> val hbaseLookup = spark.read.format("hbase").option("catalog", ...).load()
> val enriched = stream.join(hbaseLookup, stream("key") === hbaseLookup("id")) 
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to