You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "sunjincheng (JIRA)" <ji...@apache.org> on 2019/01/09 01:13:00 UTC

[jira] [Updated] (FLINK-10972) Enhancements to Flink Table API

     [ https://issues.apache.org/jira/browse/FLINK-10972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

sunjincheng updated FLINK-10972:
--------------------------------
    Description: 
[link title|http://example.com]With the continuous efforts from the community, the Flink system has been continuously improved, which has attracted more and more users. Flink SQL is a canonical, widely used relational query language. However, there are still some scenarios where Flink SQL failed to meet user needs in terms of functionality and ease of use, such as:
 * In terms of functionality

Iteration, user-defined window, user-defined join, user-defined GroupReduce, etc. Users cannot express them with SQL;
 * In terms of ease of use

 * Map - e.g. “dataStream.map(mapFun)”. Although “table.select(udf1(), udf2(), udf3()....)” can be used to accomplish the same function., with a map() function returning 100 columns, one has to define or call 100 UDFs when using SQL, which is quite involved.

 * FlatMap -  e.g. “dataStrem.flatmap(flatMapFun)”. Similarly, it can be implemented with “table.join(udtf).select()”. However, it is obvious that datastream is easier to use than SQL.

Due to the above two reasons, In this JIRAs group, we will enhance the TableAPI in stages.

-----------------------

The first stage we seek to support (will describe the details in the sub issue) :
 * Table.map()
 * Table.flatMap()
 * GroupedTable.aggregate()
 * GroupedTable.flatAggregate()

The FLIP can be find here: [FLIP-29|https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=97552739]

 

--------------------

Unify BatchTableEnvironment and StreamTableEnvironment

From:
{code:java}
ExecutionEnvironment env = ...
BatchTableEnvironment tEnv = 
 TableEnvironment.getTableEnvironment(env);
{code}
To:
{code:java}
ExecutionEnvironment env = …
TableEnvironment tEnv = TableEnvironment.getTableEnvironment(env)
{code}

See [google doc|https://docs.google.com/document/d/1t-AUGuaChADddyJi6e0WLsTDEnf9ZkupvvBiQ4yTTEI/edit#]

 

 

  was:
With the continuous efforts from the community, the Flink system has been continuously improved, which has attracted more and more users. Flink SQL is a canonical, widely used relational query language. However, there are still some scenarios where Flink SQL failed to meet user needs in terms of functionality and ease of use, such as:
 * In terms of functionality

Iteration, user-defined window, user-defined join, user-defined GroupReduce, etc. Users cannot express them with SQL;
 * In terms of ease of use

 * Map - e.g. “dataStream.map(mapFun)”. Although “table.select(udf1(), udf2(), udf3()....)” can be used to accomplish the same function., with a map() function returning 100 columns, one has to define or call 100 UDFs when using SQL, which is quite involved.

 * FlatMap -  e.g. “dataStrem.flatmap(flatMapFun)”. Similarly, it can be implemented with “table.join(udtf).select()”. However, it is obvious that datastream is easier to use than SQL.

Due to the above two reasons, In this JIRAs group, we will enhance the TableAPI in stages.

-----------------------

The first stage we seek to support (will describe the details in the sub issue) :
 * Table.map()
 * Table.flatMap()
 * GroupedTable.aggregate()
 * GroupedTable.flatAggregate()

The FLIP can be find here: [FLIP-29|https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=97552739]

 


> Enhancements to Flink Table API
> -------------------------------
>
>                 Key: FLINK-10972
>                 URL: https://issues.apache.org/jira/browse/FLINK-10972
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table API &amp; SQL
>            Reporter: sunjincheng
>            Assignee: sunjincheng
>            Priority: Major
>             Fix For: 1.8.0
>
>
> [link title|http://example.com]With the continuous efforts from the community, the Flink system has been continuously improved, which has attracted more and more users. Flink SQL is a canonical, widely used relational query language. However, there are still some scenarios where Flink SQL failed to meet user needs in terms of functionality and ease of use, such as:
>  * In terms of functionality
> Iteration, user-defined window, user-defined join, user-defined GroupReduce, etc. Users cannot express them with SQL;
>  * In terms of ease of use
>  * Map - e.g. “dataStream.map(mapFun)”. Although “table.select(udf1(), udf2(), udf3()....)” can be used to accomplish the same function., with a map() function returning 100 columns, one has to define or call 100 UDFs when using SQL, which is quite involved.
>  * FlatMap -  e.g. “dataStrem.flatmap(flatMapFun)”. Similarly, it can be implemented with “table.join(udtf).select()”. However, it is obvious that datastream is easier to use than SQL.
> Due to the above two reasons, In this JIRAs group, we will enhance the TableAPI in stages.
> -----------------------
> The first stage we seek to support (will describe the details in the sub issue) :
>  * Table.map()
>  * Table.flatMap()
>  * GroupedTable.aggregate()
>  * GroupedTable.flatAggregate()
> The FLIP can be find here: [FLIP-29|https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=97552739]
>  
> --------------------
> Unify BatchTableEnvironment and StreamTableEnvironment
> From:
> {code:java}
> ExecutionEnvironment env = ...
> BatchTableEnvironment tEnv = 
>  TableEnvironment.getTableEnvironment(env);
> {code}
> To:
> {code:java}
> ExecutionEnvironment env = …
> TableEnvironment tEnv = TableEnvironment.getTableEnvironment(env)
> {code}
> See [google doc|https://docs.google.com/document/d/1t-AUGuaChADddyJi6e0WLsTDEnf9ZkupvvBiQ4yTTEI/edit#]
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)