开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink 支持同一服务器实例上,多个数据库名前缀一样模糊匹配吗?

flink 支持同一服务器实例上,多个数据库名前缀一样模糊匹配吗?就是截图里面的databaseList和tableList2c2ced8e8d93147cea4fedb82400d3b8.png

展开
收起
三分钟热度的鱼 2023-11-01 09:20:36 56 0
4 条回答
写回答
取消 提交回答
  • Flink SQL API 不支持模糊匹配多个数据库名前缀或表名前缀的功能。因为 Flink SQL API 主要是用于处理结构化数据,并且假定已经知道了所有相关的表名和其他对象的名字。
    如果您想在一个大型生产环境中支持多租户或多用户的场景,可以在连接器级别使用多命名空间的概念来管理不同的表。例如,Kafka 连接器支持使用多个 topic 名称作为不同的命名空间,并可以在同一个集群中处理多个独立的应用或客户的数据。另外,MySQL 连接器也支持多个数据库,可以在同一个集群中支持多个租户。
    如果您需要在 Flink SQL API 中处理多个不同的表,请分别给每一个表一个唯一的名字,并在代码中使用完整的表名。例如,如果您有一个叫做 db1.my_tabledb2.my_table 的表,那么您可以分别在 SQL 查询中引用这两个表,而不是使用模糊匹配的方式来获取它们。

    2023-11-01 22:02:39
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    您好!Apache Flink 不支持同一个数据库实例上的多个数据库名前缀模糊匹配,但是可以通过添加额外的过滤条件来实现。
    例如,您可以使用 SQL 的 like 关键字来实现数据库名的模糊匹配:

    SELECT databaseName, tableName FROM databases WHERE databaseName LIKE 'prefix%' AND databaseName != 'prefix_table'
    
    2023-11-01 13:47:25
    赞同 展开评论 打赏
  • 是的,Flink支持在同一服务器实例上,对多个数据库名前缀一样的表进行模糊匹配。这可以通过使用Flink SQL的CREATE TABLE语句来实现。

    例如,如果你有一个名为my_database的数据库,其中包含多个表,每个表的名称都以my_table_开头,你可以使用以下的CREATE TABLE语句来创建一个Flink表,该表可以接收来自所有这些表的数据:

    CREATE TABLE my_table (...) WITH ('connector' = 'jdbc', 'url' = 'jdbc:mysql://localhost:3306/my_database', 'driver' = 'com.mysql.jdbc.Driver', 'table-name-pattern' = 'my_table_%')
    

    在这个例子中,table-name-pattern属性被设置为my_table_%,这是一个模糊匹配模式,它会匹配所有的表名,只要它们以my_table_开头。

    你也可以使用databaseListtableList属性来指定你想要匹配的具体数据库和表,但是这两个属性只支持精确匹配,不支持模糊匹配。

    2023-11-01 11:56:00
    赞同 展开评论 打赏
  • Flink控制台升级不影响作业运行,只影响你在控制台web ui上的操作,比如点按钮没反应,或者部分页面无法访问。此回答整理自钉群“实时计算Flink产品交流群”

    2023-11-01 10:05:01
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载