Hi Leonard,
sorry for jumping into the discussion so late. But I have two questions:
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.
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.
Thanks,
Timo
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> 写道:
Thanks Lennard for driving this FLIP.
Looks good to me.
Best,
Godfrey
Jark Wu <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> 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
:
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> 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