You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Jark Wu <im...@gmail.com> on 2019/10/11 11:23:09 UTC

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

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

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

On Fri, 11 Oct 2019 at 18:45, 迎风浪子 <57...@qq.com> wrote:

> 请问sql ddl如何定义o.proctime呢?
>
>
>
> ---原始邮件---
> 发件人: "Jark Wu"<imjark@gmail.com&gt;
> 发送时间: 2019年9月29日(星期日) 中午11:42
> 收件人: "user-zh"<user-zh@flink.apache.org&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 <986463030@qq.com&gt; wrote:
>
> &gt; Hi,各位大佬:
> &gt;
> &gt; 有没有使用flink-sql实现mysql维表的join的ddl和dml的示列的demo能够参考一下,非常感谢。