You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Adar Dembo (JIRA)" <ji...@apache.org> on 2019/07/17 00:12:00 UTC
[jira] [Commented] (KUDU-2673) Event timestamp support with kudu.
[ https://issues.apache.org/jira/browse/KUDU-2673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16886568#comment-16886568 ]
Adar Dembo commented on KUDU-2673:
----------------------------------
Have you considered using a bi-temporal model for your schema? The idea is to include two timestamp columns in the schema: one that tracks when an event started being valid, and another that tracks when the event became invalid. Your table then looks like a standard fact table in that the vast majority of operations are inserts; updates are only used to correct mistakes made at insert-time. And you use special predicates to select the set of valid events at a given point in time.
Cloudera's blog has a post covering [bi-temporal data modeling|https://blog.cloudera.com/blog/2017/05/bi-temporal-data-modeling-with-envelope/]; maybe you'll find it useful.
> Event timestamp support with kudu.
> ----------------------------------
>
> Key: KUDU-2673
> URL: https://issues.apache.org/jira/browse/KUDU-2673
> Project: Kudu
> Issue Type: New Feature
> Components: java, spark, tserver
> Reporter: yangz
> Priority: Major
> Labels: features, roadmap-candidate
>
> Kudu has the ability to read historical data. But it is based by the timestamp produced by kudu transaction and mvcc system. The timestamp kudu used greatly weakened the usability.
> For our use case. we write data to kudu from data stream. We use range partition by day.
> We want to get the hour version from kudu. So we need read history data from kudu.
> It produced by undo file. But when user give a timestamp, it means timestamp the event happen, associated with the data. Not the timestamp kudu produced. So we need a way to set event timestamp to the kudu system.
> Finally, we got a way to solve this problem.
> But our solution has two limit.
> # We only update the table by a row, and for one row we have a timestamp with it.
> # For getting the right history version of data, we need the data stream send data by event time order.
> Despite these problems, it has satisfied our current business.
>
> And our implement also solve part problem for the wrong order problem of event time if you only need the newest data, which will not read undo file.
> for the data send into kudu, t1 < t2
> t1 upsert -> t2 upsert -> newest will be t2 value
> t2 upsert -> t1 upsret -> (current kudu implement) t1, our implement will be t2.
>
> Maybe our solution is not the best for the problem. But I think kudu snapshot read should support event time.
> Our solution is not so complete for all user cases. But I hope it will be useful for some cases with the community.
>
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)