> 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

Reply via email to