> a Row has two modes represented by an internal boolean flag
`hasFieldOrder`

+1 confusion with Dawid that what's the result when index-based setters and
name-based setters are mixed used.
And name-based setters look like append instead of set.

It reminds me of Avro's `GenericRecord`, We should support real random
name-based setters instead of append.

So, what I think is, name-based setters should always be based
on fieldNames just like name-based getters. Otherwise, throw an exception.

Best,
Jingsong

On Wed, Sep 2, 2020 at 12:43 PM Danny Chan <yuzhao....@gmail.com> wrote:

> Timo, Thanks for the discussion
>
> I have only read the "Conversion of DataStream to Table" part so i would
> only put some objections there ~
>
> > StreamTableEnvironment.fromInsertStream(DataStream<T>): Table
>
> At first glance, from the perspective of a user, i'm confused by why we
> must dintinguish on the API level what a data stream is, e.g. an insert
> stream or whatever other kind of stream.
>
> As a user, he does not expect to must distinguish between several
> datastream options. The framework should have the ability to infer the
> ChangelogMode of the stream, but sadly we can not at the moment, becase we
> do not have a metadata to describe the ChangelogMode what actually the
> framework need.
>
> And could it be:
>
> StreamTableEnvironment.fromDataStream(DataStream<T>, ChangelogMode) where
> the ChanglogMode is optional because 90% of the datastream are insert for
> now.
>
> or:
>
> DataStream.withChangelogMode(ChangelogMode) so that DataStream can be
> self-describing what kind of stream it is (again, if not specified, the
> default is INSERT).
>
> > tEnv
> >.fromInsertStream(DataStream<T>)
> >.select('*, system_rowtime().as("rowtime"),
> system_proctime().as(“proctime”))
>
> In order to declare the time-attributes on datastream, i must say I prefer
>
> tEnv.fromDataStream(dataStream, Schema) for these reasons:
>
> - Schema is the uniform interface to declare the metadata for a table in
> the Table/SQL API, with an imperative coding style, in Descriptor API we
> also use it for the time-attributes purpose
> - Use a projection for time-attributes is not a good idea, because from
> the SQL side, we declare it as a metadata of part of the table schema when
> we define the DDL. Although we may explain the DDL internally using
> computed column, that does not mean we must do that in the DataStream API
> explicitly. In the SQL world, no projection function outputs type of
> time-attribute, we better still put the time-attributes in the scope of the
> table metadata.
>
> Best,
> Danny Chan
> 在 2020年8月19日 +0800 PM4:22,Timo Walther <twal...@apache.org>,写道:
> > Hi everyone,
> >
> > I would like to propose a FLIP that aims to resolve the remaining
> > shortcomings in the Table API:
> >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-136%3A++Improve+interoperability+between+DataStream+and+Table+API
> >
> > The Table API has received many new features over the last year. It
> > supports a new type system (FLIP-37), connectors support changelogs
> > (FLIP-95), we have well defined internal data structures (FLIP-95),
> > support for result retrieval in an interactive fashion (FLIP-84), and
> > soon new TableDescriptors (FLIP-129).
> >
> > However, the interfaces from and to DataStream API have not been touched
> > during the introduction of these new features and are kind of outdated.
> > The interfaces lack important functionality that is available in Table
> > API but not exposed to DataStream API users. DataStream API is still our
> > most important API which is why a good interoperability is crucial.
> >
> > This FLIP is a mixture of different topics that improve the
> > interoperability between DataStream and Table API in terms of:
> >
> > - DataStream <-> Table conversion
> > - translation of type systems TypeInformation <-> DataType
> > - schema definition (incl. rowtime, watermarks, primary key)
> > - changelog handling
> > - row handling in DataStream API
> >
> > I'm looking forward to your feedback.
> >
> > Regards,
> > Timo
>


-- 
Best, Jingsong Lee

Reply via email to