使用flink-sql实现mysql维表的join的ddl和dml的示列

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

使用flink-sql实现mysql维表的join的ddl和dml的示列

yelun
Hi,各位大佬:

有没有使用flink-sql实现mysql维表的join的ddl和dml的示列的demo能够参考一下,非常感谢。
Reply | Threaded
Open this post in threaded view
|

Re: 使用flink-sql实现mysql维表的join的ddl和dml的示列

Jark
Administrator
Hi,

mysql 维表的 DDL 和 源表/结果表 的 DDL 是一样的。 例如下面这个 DDL 的声明,rates 在 flink sql 中既可以作为
source 也可以是 sink,也可以是维表。

CREATE TABLE rates (
    currency VARCHAR,
    rate BIGINT
) WITH (
    'connector.type' = 'jdbc', -- 使用 jdbc connector
    'connector.url' = 'jdbc:mysql://localhost:3306/flink-test', -- jdbc url
    'connector.table' = 'rates', -- 表名
    'connector.username' = 'root', -- 用户名
    'connector.password' = '123456', -- 密码
)

如果要用它作为维表的话,那么需要用到 temporal join 的语法。如:

SELECT
  o.amout, o.currency, r.rate, o.amount * r.rate
FROM
  Orders AS o
  JOIN rates FOR SYSTEM_TIME AS OF o.proctime AS r
  ON r.currency = o.currency

 关于维表 join,可以查看官方文档:
https://ci.apache.org/projects/flink/flink-docs-master/dev/table/streaming/joins.html#join-with-a-temporal-table




On Fri, 27 Sep 2019 at 14:12, yelun <[hidden email]> wrote:

> Hi,各位大佬:
>
> 有没有使用flink-sql实现mysql维表的join的ddl和dml的示列的demo能够参考一下,非常感谢。
Reply | Threaded
Open this post in threaded view
|

回复:使用flink-sql实现mysql维表的join的ddl和dml的示列

迎风浪子
请问sql ddl如何定义o.proctime呢?


 
---原始邮件---
发件人: "Jark Wu"<[hidden email]&gt;
发送时间: 2019年9月29日(星期日) 中午11:42
收件人: "user-zh"<[hidden email]&gt;;
主题: Re: 使用flink-sql实现mysql维表的join的ddl和dml的示列


Hi,

mysql 维表的 DDL 和 源表/结果表 的 DDL 是一样的。 例如下面这个 DDL 的声明,rates 在 flink sql 中既可以作为
source 也可以是 sink,也可以是维表。

CREATE TABLE rates (
&nbsp;&nbsp;&nbsp; currency VARCHAR,
&nbsp;&nbsp;&nbsp; rate BIGINT
) WITH (
&nbsp;&nbsp;&nbsp; 'connector.type' = 'jdbc', -- 使用 jdbc connector
&nbsp;&nbsp;&nbsp; 'connector.url' = 'jdbc:mysql://localhost:3306/flink-test', -- jdbc url
&nbsp;&nbsp;&nbsp; 'connector.table' = 'rates', -- 表名
&nbsp;&nbsp;&nbsp; 'connector.username' = 'root', -- 用户名
&nbsp;&nbsp;&nbsp; 'connector.password' = '123456', -- 密码
)

如果要用它作为维表的话,那么需要用到 temporal join 的语法。如:

SELECT
&nbsp; o.amout, o.currency, r.rate, o.amount * r.rate
FROM
&nbsp; Orders AS o
&nbsp; JOIN rates FOR SYSTEM_TIME AS OF o.proctime AS r
&nbsp; ON r.currency = o.currency

&nbsp;关于维表 join,可以查看官方文档:
https://ci.apache.org/projects/flink/flink-docs-master/dev/table/streaming/joins.html#join-with-a-temporal-table




On Fri, 27 Sep 2019 at 14:12, yelun <[hidden email]&gt; wrote:

&gt; Hi,各位大佬:
&gt;
&gt; 有没有使用flink-sql实现mysql维表的join的ddl和dml的示列的demo能够参考一下,非常感谢。
Reply | Threaded
Open this post in threaded view
|

Re: 使用flink-sql实现mysql维表的join的ddl和dml的示列

Jark
Administrator
目前 o.proctime 在 DDL 暂时还声明不了,不可以可以使用嵌套 query 生成一个 proctime 字段。

"select ...
 from (select *, PROCTIME() as proctime from source)"

On Fri, 11 Oct 2019 at 18:45, 迎风浪子 <[hidden email]> wrote:

> 请问sql ddl如何定义o.proctime呢?
>
>
>
> ---原始邮件---
> 发件人: "Jark Wu"<[hidden email]&gt;
> 发送时间: 2019年9月29日(星期日) 中午11:42
> 收件人: "user-zh"<[hidden email]&gt;;
> 主题: Re: 使用flink-sql实现mysql维表的join的ddl和dml的示列
>
>
> Hi,
>
> mysql 维表的 DDL 和 源表/结果表 的 DDL 是一样的。 例如下面这个 DDL 的声明,rates 在 flink sql 中既可以作为
> source 也可以是 sink,也可以是维表。
>
> CREATE TABLE rates (
> &nbsp;&nbsp;&nbsp; currency VARCHAR,
> &nbsp;&nbsp;&nbsp; rate BIGINT
> ) WITH (
> &nbsp;&nbsp;&nbsp; 'connector.type' = 'jdbc', -- 使用 jdbc connector
> &nbsp;&nbsp;&nbsp; 'connector.url' =
> 'jdbc:mysql://localhost:3306/flink-test', -- jdbc url
> &nbsp;&nbsp;&nbsp; 'connector.table' = 'rates', -- 表名
> &nbsp;&nbsp;&nbsp; 'connector.username' = 'root', -- 用户名
> &nbsp;&nbsp;&nbsp; 'connector.password' = '123456', -- 密码
> )
>
> 如果要用它作为维表的话,那么需要用到 temporal join 的语法。如:
>
> SELECT
> &nbsp; o.amout, o.currency, r.rate, o.amount * r.rate
> FROM
> &nbsp; Orders AS o
> &nbsp; JOIN rates FOR SYSTEM_TIME AS OF o.proctime AS r
> &nbsp; ON r.currency = o.currency
>
> &nbsp;关于维表 join,可以查看官方文档:
>
> https://ci.apache.org/projects/flink/flink-docs-master/dev/table/streaming/joins.html#join-with-a-temporal-table
>
>
>
>
> On Fri, 27 Sep 2019 at 14:12, yelun <[hidden email]&gt; wrote:
>
> &gt; Hi,各位大佬:
> &gt;
> &gt; 有没有使用flink-sql实现mysql维表的join的ddl和dml的示列的demo能够参考一下,非常感谢。