【问题标题】:Sink processed stream data into a database using Apache-flink使用 Apache-flink 将处理后的流数据接收到数据库中
【发布时间】:2020-11-16 14:02:23
【问题描述】:

是否可以使用 pyflink 将处理后的流数据下沉到数据库中?所有写入处理数据的方法都仅限于以 txt、csv 或 Json 格式保存,无法使用数据库接收数据。

【问题讨论】:

标签: python apache-flink flink-streaming pyflink


【解决方案1】:

您可以在 pyflink 中使用 SQL DDL 来定义一个 JDBC 表接收器,然后您可以将其插入。看起来像这样

my_sink_ddl = """
CREATE TABLE MyUserTable (
  id BIGINT,
  name STRING,
  age INT,
  status BOOLEAN,
  PRIMARY KEY (id) NOT ENFORCED
) WITH (
   'connector' = 'jdbc',
   'url' = 'jdbc:mysql://localhost:3306/mydatabase',
   'table-name' = 'users'
);
"""

t_env.sql_update(my_sink_ddl)

【讨论】:

  • 感谢您的回复。但主要问题是数据库连接器应该放置在哪里。此外,该解决方案是否适用于非 sql 数据库,特别是 MongoDB?
  • 我不明白“他们应该放在哪里”这一点。接收器始终是数据流 DAG 中的终端节点。但是不,MongoDB 没有 Flink 连接器。
猜你喜欢
  • 2020-06-09
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多