Thanks Leonard for the clarifications!

On Mon, Aug 17, 2020 at 9:17 PM Leonard Xu <xbjt...@gmail.com> wrote:

>
> > But are we still able to track different views of such a
> > table through time, as rows are added/deleted to/from the table?
>
> Yes, in fact we support temporal table from changlog which contains all
> possible message types(INSERT/UPDATE/DELETE).
>
> > For
> > example, suppose I have an append-only table source with event-time and
> PK,
> > will I be allowed to do an event-time temporal join with this table?
> Yes, I list some examples in the doc, the example versioned_rates3  is
> this case exactly.
>
> Best
> Leonard
>
>
> >
> > On Wed, Aug 12, 2020 at 3:31 PM Leonard Xu <xbjt...@gmail.com <mailto:
> xbjt...@gmail.com>> wrote:
> >
> >> Hi, all
> >>
> >> After a detailed offline discussion about the temporal table related
> >> concept and behavior, we had a reliable solution and rejected several
> >> alternatives.
> >> Compared to rejected alternatives, the proposed approach is a more
> unified
> >> story and also friendly to user and current Flink framework.
> >> I improved the FLIP[1] with the proposed approach and refactored the
> >> document organization to make it clear enough.
> >>
> >> Please let me know if you have any concerns, I’m looking forward your
> >> comments.
> >>
> >>
> >> Best
> >> Leonard
> >>
> >> [1]
> >>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL
> >> <
> >>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL
> <
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL
> >
> >>>
> >>
> >>
> >>> 在 2020年8月4日,21:25,Leonard Xu <xbjt...@gmail.com <mailto:
> xbjt...@gmail.com>> 写道:
> >>>
> >>> Hi, all
> >>>
> >>> I’ve updated the FLIP[1] with the terminology `ChangelogTime`.
> >>>
> >>> Best
> >>> Leonard
> >>> [1]
> >>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL
> <
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL
> >
> >> <
> >>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL
> <
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-132+Temporal+Table+DDL
> >
> >>>
> >>>
> >>>> 在 2020年8月4日,20:58,Leonard Xu <xbjt...@gmail.com <mailto:
> xbjt...@gmail.com> <mailto:
> >> xbjt...@gmail.com <mailto:xbjt...@gmail.com>>> 写道:
> >>>>
> >>>> Hi, Timo
> >>>>
> >>>> Thanks for you response.
> >>>>
> >>>>> 1) Naming: Is operation time a good term for this concept? If I read
> >> "The operation time is the time when the changes happened in system." or
> >> "The system time of DML execution in database", why don't we call it
> >> `ChangelogTime` or `SystemTime`? Introducing another terminology of
> time in
> >> Flink should be thought through.
> >>>>
> >>>> I agree that we should thought through. I have considered the name
> >> `ChangelogTime` and `SystemTime` too, I don’t have strong opinion on the
> >> name.
> >>>>
> >>>> I proposed `operationTime` because most changelog comes from Database
> >> and we always called an action as `operation` rather than `change` in
> >> Database, the operation time is  easier to understand  for database
> users,
> >> but it's more like a database terminology.
> >>>>
> >>>> For `SystemTime`, user may confuse which one does the system in
> >> `SystemTime` represents?  Flink, Database or CDC tool.  Maybe it’s not a
> >> good name.
> >>>>
> >>>> `ChangelogTime` is a pretty choice which is more unified with existed
> >> terminology `Changelog` and `ChangelogMode`, so let me use
> `ChangelogTime`
> >> and I’ll update the FLIP.
> >>>>
> >>>>
> >>>>> 2) Exposing it through `org.apache.flink.types.Row`: Shall we also
> >> expose the concept of time through the user-level `Row` type? The FLIP
> does
> >> not mention this explictly. I think we can keep it as an internal
> concept
> >> but I just wanted to ask for clarification.
> >>>>
> >>>> Yes, I want to keep it as an internal concept, we have discussed that
> >> changelog time concept should be the third time concept(the other two
> are
> >> event-time and processing-time). It’s not easy for normal users(or to
> help
> >> normal users) understand the three concepts accurately, and I did not
> find
> >> a big enough scenario that user need to touch the changelog time for
> now,
> >> so I tend to do not expose the concept to users.
> >>>>
> >>>>
> >>>> Best,
> >>>> Leonard
> >>>>
> >>>>
> >>>>>
> >>>>> On 04.08.20 04:58, Leonard Xu wrote:
> >>>>>> Thanks Konstantin,
> >>>>>> Regarding your questions, hope my comments has address your
> questions
> >> and I also add a few explanation in the FLIP.
> >>>>>> Thank you all for the feedback,
> >>>>>> It seems everyone involved  in this thread has reached a consensus.
> >>>>>> I will start a vote thread  later.
> >>>>>> Best,
> >>>>>> Leonard
> >>>>>>> 在 2020年8月3日,19:35,godfrey he <godfre...@gmail.com <mailto:
> godfre...@gmail.com> <mailto:
> >> godfre...@gmail.com <mailto:godfre...@gmail.com>>> 写道:
> >>>>>>>
> >>>>>>> Thanks Lennard for driving this FLIP.
> >>>>>>> Looks good to me.
> >>>>>>>
> >>>>>>> Best,
> >>>>>>> Godfrey
> >>>>>>>
> >>>>>>> Jark Wu <imj...@gmail.com <mailto:imj...@gmail.com> <mailto:
> imj...@gmail.com <mailto:imj...@gmail.com>>> 于2020年8月3日周一
> >> 下午12:04写道:
> >>>>>>>
> >>>>>>>> Thanks Leonard for the great FLIP. I think it is in very good
> shape.
> >>>>>>>> +1 to start a vote.
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>> Jark
> >>>>>>>>
> >>>>>>>> On Fri, 31 Jul 2020 at 17:56, Fabian Hueske <fhue...@gmail.com
> <mailto:fhue...@gmail.com>
> >> <mailto:fhue...@gmail.com <mailto:fhue...@gmail.com>>> wrote:
> >>>>>>>>
> >>>>>>>>> Hi Leonard,
> >>>>>>>>>
> >>>>>>>>> Thanks for this FLIP!
> >>>>>>>>> Looks good from my side.
> >>>>>>>>>
> >>>>>>>>> Cheers, Fabian
> >>>>>>>>>
> >>>>>>>>> Am Do., 30. Juli 2020 um 22:15 Uhr schrieb Seth Wiesman <
> >>>>>>>>> sjwies...@gmail.com <mailto:sjwies...@gmail.com> <mailto:
> sjwies...@gmail.com <mailto:sjwies...@gmail.com>>
> >>>>>>>>>> :
> >>>>>>>>>
> >>>>>>>>>> Hi Leondard,
> >>>>>>>>>>
> >>>>>>>>>> Thank you for pushing this, I think the updated syntax looks
> >> really
> >>>>>>>> good
> >>>>>>>>>> and the semantics make sense to me.
> >>>>>>>>>>
> >>>>>>>>>> +1
> >>>>>>>>>>
> >>>>>>>>>> Seth
> >>>>>>>>>>
> >>>>>>>>>> On Wed, Jul 29, 2020 at 11:36 AM Leonard Xu <xbjt...@gmail.com
> <mailto:xbjt...@gmail.com>
> >> <mailto:xbjt...@gmail.com <mailto:xbjt...@gmail.com>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Hi, Konstantin
> >>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> 1) A  "Versioned Temporal Table DDL on source" can only be
> >> joined
> >>>>>>>> on
> >>>>>>>>>> the
> >>>>>>>>>>>> PRIMARY KEY attribute, correct?
> >>>>>>>>>>> Yes, the PRIMARY KEY would be join key.
> >>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> 2) Isn't it the time attribute in the ORDER BY clause of the
> >> VIEW
> >>>>>>>>>>> definition that defines
> >>>>>>>>>>>> whether a event-time or processing time temporal table join is
> >>>>>>>> used?
> >>>>>>>>>>>
> >>>>>>>>>>> I think event-time or processing-time temporal table join
> >> depends on
> >>>>>>>>> fact
> >>>>>>>>>>> table’s time attribute in temporal join rather than from
> temporal
> >>>>>>>> table
> >>>>>>>>>>> side, the event-time or processing time in temporal table is
> just
> >>>>>>>> used
> >>>>>>>>> to
> >>>>>>>>>>> split the validity period of versioned snapshot of temporal
> >> table.
> >>>>>>>> The
> >>>>>>>>>>> processing time attribute is not  necessary for temporal table
> >>>>>>>> without
> >>>>>>>>>>> version, only the primary key is required, the following VIEW
> is
> >> also
> >>>>>>>>>> valid
> >>>>>>>>>>> for temporal table without version.
> >>>>>>>>>>> CREATE VIEW latest_rates AS
> >>>>>>>>>>> SELECT currency, LAST_VALUE(rate)            -- only keep the
> >> latest
> >>>>>>>>>>> version
> >>>>>>>>>>> FROM rates
> >>>>>>>>>>> GROUP BY currency;                           -- inferred
> primary
> >> key
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> 3) A "Versioned Temporal Table DDL on source" is always
> >> versioned
> >>>>>>>> on
> >>>>>>>>>>>> operation_time regardless of the lookup table attribute
> >> (event-time
> >>>>>>>>> or
> >>>>>>>>>>>> processing time attribute), correct?
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> Yes, the semantics of `FOR SYSTEM_TIME AS OF o.time` is using
> the
> >>>>>>>>> o.time
> >>>>>>>>>>> value to lookup the version of the temporal table.
> >>>>>>>>>>> For fact table has the processing time attribute, it means only
> >>>>>>>> lookup
> >>>>>>>>>> the
> >>>>>>>>>>> latest version of temporal table and we can do some
> optimization
> >> in
> >>>>>>>>>>> implementation like only keep the latest version.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> Best
> >>>>>>>>>>> Leonard
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >>
> >
> > --
> > Best regards!
> > Rui Li
>
>

-- 
Best regards!
Rui Li

Reply via email to