Flink 1.15 toRetractStream 转换错误:不支持收回流的 Legacy 转换

问题描述 投票:0回答:1

我正在将 Flink 1.9 升级到 1.15.2,但我的应用程序使用 Table API 到 Datastream API 转换 (flink-table-api-scala-bridge) 时遇到错误(见下文)。


环境: 弗林克:1.15.2 斯卡拉 2.12.2 电子病历6.9


问题: 任何人都可以提供有关此错误含义的上下文吗?

我看到 toRetractStream 已被弃用,建议使用 toChangelogStream() 。如何将案例类转换为架构(https://nightlies.apache.org/flink/flink-docs-release-1.15/api/java//org/apache/flink/table/api/bridge/java /StreamTableEnvironment.html#toChangelogStream-org.apache.flink.table.api.Table-org.apache.flink.table.api.Schema-)?


代码:

    val paymentSubscriptionsStream: DataStream[(Boolean, PaymentSubscriptions)] =
      sTableEnv
        .toRetractStream[PaymentSubscriptions](joinedStreams)
        .filter(x => x._1)

案例类别:

case class PaymentSubscriptions(
  company_id: java.lang.Long,
  company_code: String,
  user_access_id: String,
  benevity_account_alias: String,
  subscription_id: java.lang.Long,
  subscription_amount: java.math.BigDecimal,
  subscription_name: String,
  transaction_reference_number: String,
  transaction_source: String,
  subscription_created_timestamp: String,
  date_key: java.lang.Long,
  exchange_rate_date: java.lang.Long,
  recipient: String,
  portfolio_id: java.lang.Long,
  pledge_site_pledge_id: String,
  match_cap: java.math.BigDecimal,
  match_opt_out: String,
  pledge_source: String,
  pledge_type: String,
  pledge_status: String,
  transaction_currency: String,
  exchange_rate_code: String,
  deactivated_flag: Int,
  ts: java.lang.Long
)

错误: 程序结束时出现以下异常:

org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Don't support LEGACY('STRUCTURED_TYPE', 'ANY<scala.Tuple2, rO0ABXNyAFNvcmcuYXBhY2hlLmZsaW5rLnRhYmxlLmFwaS5icmlkZ2Uuc2NhbGEuaW50ZXJuYWwuU3RyZWFtVGFibGVFbnZpcm9ubWVudEltcGwkJGFub24kMj8O52rJ79Y7AgAAeHIANm9yZy5hcGFjaGUuZmxpbmsuYXBpLnNjYWxhLnR5cGV1dGlscy5DYXNlQ2xhc3NUeXBlSW5mb46d1-iqONqQAgAMTAARUEFUVEVSTl9JTlRfRklFTER0ABlMamF2YS91dGlsL3JlZ2V4L1BhdHRlcm47TAAVUEFUVEVSTl9ORVNURURfRklFTERTcQB-AAJMAB5QQVRURVJOX05FU1RFRF9GSUVMRFNfV0lMRENBUkRxAH4AAkwAC1JFR0VYX0ZJRUxEdAASTGphdmEvbGFuZy9TdHJpbmc7TAAPUkVHRVhfSU5UX0ZJRUxEcQB-AANMABNSRUdFWF9ORVNURURfRklFTERTcQB-AANMABxSRUdFWF9ORVNURURfRklFTERTX1dJTERDQVJEcQB-AANMAA9SRUdFWF9TVFJfRklFTERxAH4AA0wABWNsYXp6dAARTGphdmEvbGFuZy9DbGFzcztMAApmaWVsZE5hbWVzdAAWTHNjYWxhL2NvbGxlY3Rpb24vU2VxO0wACmZpZWxkVHlwZXNxAH4ABVsAEnR5cGVQYXJhbVR5cGVJbmZvc3QAN1tMb3JnL2FwYWNoZS9mbGluay9hcGkvY29tbW9uL3R5cGVpbmZvL1R5cGVJbmZvcm1hdGlvbjt4cgA1b3JnLmFwYWNoZS5mbGluay5hcGkuamF2YS50eXBldXRpbHMuVHVwbGVUeXBlSW5mb0Jhc2UAAAAAAAAAAQIAAkkAC3RvdGFsRmllbGRzWwAFdHlwZXNxAH4ABnhyADNvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLkNvbXBvc2l0ZVR5cGUAAAAAAAAAAQIAAUwACXR5cGVDbGFzc3EAfgAEeHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBlaW5mby5UeXBlSW5mb3JtYXRpb26UjchIurN66wIAAHhwdnIADHNjYWxhLlR1cGxlMi6UZn1bkvn1AgACTAACXzF0ABJMamF2YS9sYW5nL09iamVjdDtMAAJfMnEAfgAMeHAAAAAZdXIAN1tMb3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5cGVpbmZvLlR5cGVJbmZvcm1hdGlvbju4oGykGpoUtgIAAHhwAAAAAnNyADJvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZWluZm8uQmFzaWNUeXBlSW5mb_oE8IKlad0GAgAETAAFY2xhenpxAH4ABEwAD2NvbXBhcmF0b3JDbGFzc3EAfgAEWwAXcG9zc2libGVDYXN0VGFyZ2V0VHlwZXN0ABJbTGphdmEvbGFuZy9DbGFzcztMAApzZXJpYWxpemVydAA2TG9yZy9hcGFjaGUvZmxpbmsvYXBpL2NvbW1vbi90eXBldXRpbHMvVHlwZVNlcmlhbGl6ZXI7eHEAfgAJdnIAEWphdmEubGFuZy5Cb29sZWFuzSBygNWc-u4CAAFaAAV2YWx1ZXhwdnIAPG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5Cb29sZWFuQ29tcGFyYXRvcgAAAAAAAAABAgAAeHIAPm9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5CYXNpY1R5cGVDb21wYXJhdG9yAAAAAAAAAAECAAJaABNhc2NlbmRpbmdDb21wYXJpc29uWwALY29tcGFyYXRvcnN0ADdbTG9yZy9hcGFjaGUvZmxpbmsvYXBpL2NvbW1vbi90eXBldXRpbHMvVHlwZUNvbXBhcmF0b3I7eHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuVHlwZUNvbXBhcmF0b3IAAAAAAAAAAQIAAHhwdXIAEltMamF2YS5sYW5nLkNsYXNzO6sW167LzVqZAgAAeHAAAAAAc3IAPG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5Cb29sZWFuU2VyaWFsaXplcgAAAAAAAAABAgAAeHIAQm9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5UeXBlU2VyaWFsaXplclNpbmdsZXRvbnmph6rHLndFAgAAeHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuVHlwZVNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhwc3IALWlvLmJlbmV2aXR5LmRhdGEuUGF5bWVudHNEYXRhU2VydmljZSQkYW5vbiQzOFl3W4GFd84qAgAAeHEAfgABdnIAL2lvLmJlbmV2aXR5LmRhdGEuY2FzZWNsYXNzLlBheW1lbnRTdWJzY3JpcHRpb25zcHwnjW8wvNoCABhJABBkZWFjdGl2YXRlZF9mbGFnTAAWYmVuZXZpdHlfYWNjb3VudF9hbGlhc3EAfgADTAAMY29tcGFueV9jb2RlcQB-AANMAApjb21wYW55X2lkdAAQTGphdmEvbGFuZy9Mb25nO0wACGRhdGVfa2V5cQB-ACRMABJleGNoYW5nZV9yYXRlX2NvZGVxAH4AA0wAEmV4Y2hhbmdlX3JhdGVfZGF0ZXEAfgAkTAAJbWF0Y2hfY2FwdAAWTGphdmEvbWF0aC9CaWdEZWNpbWFsO0wADW1hdGNoX29wdF9vdXRxAH4AA0wAFXBsZWRnZV9zaXRlX3BsZWRnZV9pZHEAfgADTAANcGxlZGdlX3NvdXJjZXEAfgADTAANcGxlZGdlX3N0YXR1c3EAfgADTAALcGxlZGdlX3R5cGVxAH4AA0wADHBvcnRmb2xpb19pZHEAfgAkTAAJcmVjaXBpZW50cQB-AANMABNzdWJzY3JpcHRpb25fYW1vdW50cQB-ACVMAB5zdWJzY3JpcHRpb25fY3JlYXRlZF90aW1lc3RhbXBxAH4AA0wAD3N1YnNjcmlwdGlvbl9pZHEAfgAkTAARc3Vic2NyaXB0aW9uX25hbWVxAH4AA0wAFHRyYW5zYWN0aW9uX2N1cnJlbmN5cQB-AANMABx0cmFuc2FjdGlvbl9yZWZlcmVuY2VfbnVtYmVycQB-AANMABJ0cmFuc2FjdGlvbl9zb3VyY2VxAH4AA0wAAnRzcQB-ACRMAA51c2VyX2FjY2Vzc19pZHEAfgADeHAAAAAYdXEAfgAOAAAAGHNyADRvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZWluZm8uSW50ZWdlclR5cGVJbmZvkAXERWlASpUCAAB4cgA0b3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5cGVpbmZvLk51bWVyaWNUeXBlSW5mb62YxnMwAowWAgAAeHEAfgAQdnIADmphdmEubGFuZy5Mb25nO4vkkMyPI98CAAFKAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cHZyADlvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLmJhc2UuTG9uZ0NvbXBhcmF0b3IAAAAAAAAAAQIAAHhxAH4AF3VxAH4AGwAAAAN2cgAPamF2YS5sYW5nLkZsb2F02u3Jots88OwCAAFGAAV2YWx1ZXhxAH4ALHZyABBqYXZhLmxhbmcuRG91YmxlgLPCSilr-wQCAAFEAAV2YWx1ZXhxAH4ALHZyABNqYXZhLmxhbmcuQ2hhcmFjdGVyNItH2WsaJngCAAFDAAV2YWx1ZXhwc3IAOW9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5Mb25nU2VyaWFsaXplcgAAAAAAAAABAgAAeHEAfgAec3EAfgAQdnIAEGphdmEubGFuZy5TdHJpbmeg8KQ4ejuzQgIAAHhwdnIAO29yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5TdHJpbmdDb21wYXJhdG9yAAAAAAAAAAECAAB4cQB-ABd1cQB-ABsAAAAAc3IAO29yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5TdHJpbmdTZXJpYWxpemVyAAAAAAAAAAECAAB4cQB-AB5xAH4AOXEAfgA5cQB-ACpzcQB-ABB2cgAUamF2YS5tYXRoLkJpZ0RlY2ltYWxUxxVX-YEoTwMAAkkABXNjYWxlTAAGaW50VmFsdAAWTGphdmEvbWF0aC9CaWdJbnRlZ2VyO3hxAH4ALHZyADtvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLmJhc2UuQmlnRGVjQ29tcGFyYXRvcgAAAAAAAAABAgAAeHEAfgAXdXEAfgAbAAAAAHNyADtvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLmJhc2UuQmlnRGVjU2VyaWFsaXplcgAAAAAAAAABAgAAeHEAfgAecQB-ADlxAH4AOXEAfgA5cQB-ADlxAH4AKnEAfgAqcQB-ADlxAH4AKnEAfgA5cQB-AEFxAH4AOXEAfgA5cQB-ADlxAH4AOXEAfgA5cQB-ADlzcQB-ACh2cgARamF2YS5sYW5nLkludGVnZXIS4qCk94GHOAIAAUkABXZhbHVleHEAfgAsdnIAOG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5JbnRDb21wYXJhdG9yAAAAAAAAAAECAAB4cQB-ABd1cQB-ABsAAAAEcQB-AC1xAH4AMnEAfgA0cQB-ADZzcgA4b3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5cGV1dGlscy5iYXNlLkludFNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhxAH4AHnEAfgAqc3IAF2phdmEudXRpbC5yZWdleC5QYXR0ZXJuRmfVa25JAg0CAAJJAAVmbGFnc0wAB3BhdHRlcm5xAH4AA3hwAAAAAHQABlswLTldK3NxAH4AUgAAAAB0ADAoW1xwe0x9X1wkXVtccHtMfVxwe0RpZ2l0fV9cJF0qfFswLTldKykoXC4oLispKT9zcQB-AFIAAAAAdAA2KFtccHtMfV9cJF1bXHB7TH1ccHtEaWdpdH1fXCRdKnxbMC05XSspKFwuKC4rKSk_fFwqfFxfdAAlW1xwe0x9X1wkXVtccHtMfVxwe0RpZ2l0fV9cJF0qfFswLTldK3EAfgBUcQB-AFZxAH4AWHQAHltccHtMfV9cJF1bXHB7TH1ccHtEaWdpdH1fXCRdKnEAfgAmc3IAMnNjYWxhLmNvbGxlY3Rpb24uaW1tdXRhYmxlLkxpc3QkU2VyaWFsaXphdGlvblByb3h5AAAAAAAAAAEDAAB4cHQACmNvbXBhbnlfaWR0AAxjb21wYW55X2NvZGV0AA51c2VyX2FjY2Vzc19pZHQAFmJlbmV2aXR5X2FjY291bnRfYWxpYXN0AA9zdWJzY3JpcHRpb25faWR0ABNzdWJzY3JpcHRpb25fYW1vdW50dAARc3Vic2NyaXB0aW9uX25hbWV0ABx0cmFuc2FjdGlvbl9yZWZlcmVuY2VfbnVtYmVydAASdHJhbnNhY3Rpb25fc291cmNldAAec3Vic2NyaXB0aW9uX2NyZWF0ZWRfdGltZXN0YW1wdAAIZGF0ZV9rZXl0ABJleGNoYW5nZV9yYXRlX2RhdGV0AAlyZWNpcGllbnR0AAxwb3J0Zm9saW9faWR0ABVwbGVkZ2Vfc2l0ZV9wbGVkZ2VfaWR0AAltYXRjaF9jYXB0AA1tYXRjaF9vcHRfb3V0dAANcGxlZGdlX3NvdXJjZXQAC3BsZWRnZV90eXBldAANcGxlZGdlX3N0YXR1c3QAFHRyYW5zYWN0aW9uX2N1cnJlbmN5dAASZXhjaGFuZ2VfcmF0ZV9jb2RldAAQZGVhY3RpdmF0ZWRfZmxhZ3QAAnRzc3IALHNjYWxhLmNvbGxlY3Rpb24uaW1tdXRhYmxlLkxpc3RTZXJpYWxpemVFbmQkilxjW_dTC20CAAB4cHhzcQB-AFtxAH4AKnEAfgA5cQB-ADlxAH4AOXEAfgAqcQB-AEFxAH4AOXEAfgA5cQB-ADlxAH4AOXEAfgAqcQB-ACpxAH4AOXEAfgAqcQB-ADlxAH4AQXEAfgA5cQB-ADlxAH4AOXEAfgA5cQB-ADlxAH4AOXEAfgBKcQB-ACpxAH4Adnh1cQB-AA4AAAAAc3EAfgBSAAAAAHEAfgBUc3EAfgBSAAAAAHQAMChbXHB7TH1fXCRdW1xwe0x9XHB7RGlnaXR9X1wkXSp8WzAtOV0rKShcLiguKykpP3NxAH4AUgAAAAB0ADYoW1xwe0x9X1wkXVtccHtMfVxwe0RpZ2l0fV9cJF0qfFswLTldKykoXC4oLispKT98XCp8XF90ACVbXHB7TH1fXCRdW1xwe0x9XHB7RGlnaXR9X1wkXSp8WzAtOV0rcQB-AFRxAH4Ae3EAfgB9cQB-AFpxAH4ADXNxAH4AW3QAAl8xdAACXzJxAH4AdnhzcQB-AFtxAH4AE3EAfgAicQB-AHZ4dXEAfgAOAAAAAnEAfgATcQB-ACI>') conversion for the retract sink
    at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:372)
    at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:222)
    at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:114)
    at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:836)
    at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:247)
    at org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1078)
    at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1156)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1878)
    at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
    at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1156)
Caused by: org.apache.flink.table.api.TableException: Don't support LEGACY('STRUCTURED_TYPE', 'ANY<scala.Tuple2, rO0ABXNyAFNvcmcuYXBhY2hlLmZsaW5rLnRhYmxlLmFwaS5icmlkZ2Uuc2NhbGEuaW50ZXJuYWwuU3RyZWFtVGFibGVFbnZpcm9ubWVudEltcGwkJGFub24kMj8O52rJ79Y7AgAAeHIANm9yZy5hcGFjaGUuZmxpbmsuYXBpLnNjYWxhLnR5cGV1dGlscy5DYXNlQ2xhc3NUeXBlSW5mb46d1-iqONqQAgAMTAARUEFUVEVSTl9JTlRfRklFTER0ABlMamF2YS91dGlsL3JlZ2V4L1BhdHRlcm47TAAVUEFUVEVSTl9ORVNURURfRklFTERTcQB-AAJMAB5QQVRURVJOX05FU1RFRF9GSUVMRFNfV0lMRENBUkRxAH4AAkwAC1JFR0VYX0ZJRUxEdAASTGphdmEvbGFuZy9TdHJpbmc7TAAPUkVHRVhfSU5UX0ZJRUxEcQB-AANMABNSRUdFWF9ORVNURURfRklFTERTcQB-AANMABxSRUdFWF9ORVNURURfRklFTERTX1dJTERDQVJEcQB-AANMAA9SRUdFWF9TVFJfRklFTERxAH4AA0wABWNsYXp6dAARTGphdmEvbGFuZy9DbGFzcztMAApmaWVsZE5hbWVzdAAWTHNjYWxhL2NvbGxlY3Rpb24vU2VxO0wACmZpZWxkVHlwZXNxAH4ABVsAEnR5cGVQYXJhbVR5cGVJbmZvc3QAN1tMb3JnL2FwYWNoZS9mbGluay9hcGkvY29tbW9uL3R5cGVpbmZvL1R5cGVJbmZvcm1hdGlvbjt4cgA1b3JnLmFwYWNoZS5mbGluay5hcGkuamF2YS50eXBldXRpbHMuVHVwbGVUeXBlSW5mb0Jhc2UAAAAAAAAAAQIAAkkAC3RvdGFsRmllbGRzWwAFdHlwZXNxAH4ABnhyADNvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLkNvbXBvc2l0ZVR5cGUAAAAAAAAAAQIAAUwACXR5cGVDbGFzc3EAfgAEeHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBlaW5mby5UeXBlSW5mb3JtYXRpb26UjchIurN66wIAAHhwdnIADHNjYWxhLlR1cGxlMi6UZn1bkvn1AgACTAACXzF0ABJMamF2YS9sYW5nL09iamVjdDtMAAJfMnEAfgAMeHAAAAAZdXIAN1tMb3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5cGVpbmZvLlR5cGVJbmZvcm1hdGlvbju4oGykGpoUtgIAAHhwAAAAAnNyADJvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZWluZm8uQmFzaWNUeXBlSW5mb_oE8IKlad0GAgAETAAFY2xhenpxAH4ABEwAD2NvbXBhcmF0b3JDbGFzc3EAfgAEWwAXcG9zc2libGVDYXN0VGFyZ2V0VHlwZXN0ABJbTGphdmEvbGFuZy9DbGFzcztMAApzZXJpYWxpemVydAA2TG9yZy9hcGFjaGUvZmxpbmsvYXBpL2NvbW1vbi90eXBldXRpbHMvVHlwZVNlcmlhbGl6ZXI7eHEAfgAJdnIAEWphdmEubGFuZy5Cb29sZWFuzSBygNWc-u4CAAFaAAV2YWx1ZXhwdnIAPG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5Cb29sZWFuQ29tcGFyYXRvcgAAAAAAAAABAgAAeHIAPm9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5CYXNpY1R5cGVDb21wYXJhdG9yAAAAAAAAAAECAAJaABNhc2NlbmRpbmdDb21wYXJpc29uWwALY29tcGFyYXRvcnN0ADdbTG9yZy9hcGFjaGUvZmxpbmsvYXBpL2NvbW1vbi90eXBldXRpbHMvVHlwZUNvbXBhcmF0b3I7eHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuVHlwZUNvbXBhcmF0b3IAAAAAAAAAAQIAAHhwdXIAEltMamF2YS5sYW5nLkNsYXNzO6sW167LzVqZAgAAeHAAAAAAc3IAPG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5Cb29sZWFuU2VyaWFsaXplcgAAAAAAAAABAgAAeHIAQm9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5UeXBlU2VyaWFsaXplclNpbmdsZXRvbnmph6rHLndFAgAAeHIANG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuVHlwZVNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhwc3IALWlvLmJlbmV2aXR5LmRhdGEuUGF5bWVudHNEYXRhU2VydmljZSQkYW5vbiQzOFl3W4GFd84qAgAAeHEAfgABdnIAL2lvLmJlbmV2aXR5LmRhdGEuY2FzZWNsYXNzLlBheW1lbnRTdWJzY3JpcHRpb25zcHwnjW8wvNoCABhJABBkZWFjdGl2YXRlZF9mbGFnTAAWYmVuZXZpdHlfYWNjb3VudF9hbGlhc3EAfgADTAAMY29tcGFueV9jb2RlcQB-AANMAApjb21wYW55X2lkdAAQTGphdmEvbGFuZy9Mb25nO0wACGRhdGVfa2V5cQB-ACRMABJleGNoYW5nZV9yYXRlX2NvZGVxAH4AA0wAEmV4Y2hhbmdlX3JhdGVfZGF0ZXEAfgAkTAAJbWF0Y2hfY2FwdAAWTGphdmEvbWF0aC9CaWdEZWNpbWFsO0wADW1hdGNoX29wdF9vdXRxAH4AA0wAFXBsZWRnZV9zaXRlX3BsZWRnZV9pZHEAfgADTAANcGxlZGdlX3NvdXJjZXEAfgADTAANcGxlZGdlX3N0YXR1c3EAfgADTAALcGxlZGdlX3R5cGVxAH4AA0wADHBvcnRmb2xpb19pZHEAfgAkTAAJcmVjaXBpZW50cQB-AANMABNzdWJzY3JpcHRpb25fYW1vdW50cQB-ACVMAB5zdWJzY3JpcHRpb25fY3JlYXRlZF90aW1lc3RhbXBxAH4AA0wAD3N1YnNjcmlwdGlvbl9pZHEAfgAkTAARc3Vic2NyaXB0aW9uX25hbWVxAH4AA0wAFHRyYW5zYWN0aW9uX2N1cnJlbmN5cQB-AANMABx0cmFuc2FjdGlvbl9yZWZlcmVuY2VfbnVtYmVycQB-AANMABJ0cmFuc2FjdGlvbl9zb3VyY2VxAH4AA0wAAnRzcQB-ACRMAA51c2VyX2FjY2Vzc19pZHEAfgADeHAAAAAYdXEAfgAOAAAAGHNyADRvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZWluZm8uSW50ZWdlclR5cGVJbmZvkAXERWlASpUCAAB4cgA0b3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5cGVpbmZvLk51bWVyaWNUeXBlSW5mb62YxnMwAowWAgAAeHEAfgAQdnIADmphdmEubGFuZy5Mb25nO4vkkMyPI98CAAFKAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cHZyADlvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLmJhc2UuTG9uZ0NvbXBhcmF0b3IAAAAAAAAAAQIAAHhxAH4AF3VxAH4AGwAAAAN2cgAPamF2YS5sYW5nLkZsb2F02u3Jots88OwCAAFGAAV2YWx1ZXhxAH4ALHZyABBqYXZhLmxhbmcuRG91YmxlgLPCSilr-wQCAAFEAAV2YWx1ZXhxAH4ALHZyABNqYXZhLmxhbmcuQ2hhcmFjdGVyNItH2WsaJngCAAFDAAV2YWx1ZXhwc3IAOW9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5Mb25nU2VyaWFsaXplcgAAAAAAAAABAgAAeHEAfgAec3EAfgAQdnIAEGphdmEubGFuZy5TdHJpbmeg8KQ4ejuzQgIAAHhwdnIAO29yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5TdHJpbmdDb21wYXJhdG9yAAAAAAAAAAECAAB4cQB-ABd1cQB-ABsAAAAAc3IAO29yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5TdHJpbmdTZXJpYWxpemVyAAAAAAAAAAECAAB4cQB-AB5xAH4AOXEAfgA5cQB-ACpzcQB-ABB2cgAUamF2YS5tYXRoLkJpZ0RlY2ltYWxUxxVX-YEoTwMAAkkABXNjYWxlTAAGaW50VmFsdAAWTGphdmEvbWF0aC9CaWdJbnRlZ2VyO3hxAH4ALHZyADtvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLmJhc2UuQmlnRGVjQ29tcGFyYXRvcgAAAAAAAAABAgAAeHEAfgAXdXEAfgAbAAAAAHNyADtvcmcuYXBhY2hlLmZsaW5rLmFwaS5jb21tb24udHlwZXV0aWxzLmJhc2UuQmlnRGVjU2VyaWFsaXplcgAAAAAAAAABAgAAeHEAfgAecQB-ADlxAH4AOXEAfgA5cQB-ADlxAH4AKnEAfgAqcQB-ADlxAH4AKnEAfgA5cQB-AEFxAH4AOXEAfgA5cQB-ADlxAH4AOXEAfgA5cQB-ADlzcQB-ACh2cgARamF2YS5sYW5nLkludGVnZXIS4qCk94GHOAIAAUkABXZhbHVleHEAfgAsdnIAOG9yZy5hcGFjaGUuZmxpbmsuYXBpLmNvbW1vbi50eXBldXRpbHMuYmFzZS5JbnRDb21wYXJhdG9yAAAAAAAAAAECAAB4cQB-ABd1cQB-ABsAAAAEcQB-AC1xAH4AMnEAfgA0cQB-ADZzcgA4b3JnLmFwYWNoZS5mbGluay5hcGkuY29tbW9uLnR5cGV1dGlscy5iYXNlLkludFNlcmlhbGl6ZXIAAAAAAAAAAQIAAHhxAH4AHnEAfgAqc3IAF2phdmEudXRpbC5yZWdleC5QYXR0ZXJuRmfVa25JAg0CAAJJAAVmbGFnc0wAB3BhdHRlcm5xAH4AA3hwAAAAAHQABlswLTldK3NxAH4AUgAAAAB0ADAoW1xwe0x9X1wkXVtccHtMfVxwe0RpZ2l0fV9cJF0qfFswLTldKykoXC4oLispKT9zcQB-AFIAAAAAdAA2KFtccHtMfV9cJF1bXHB7TH1ccHtEaWdpdH1fXCRdKnxbMC05XSspKFwuKC4rKSk_fFwqfFxfdAAlW1xwe0x9X1wkXVtccHtMfVxwe0RpZ2l0fV9cJF0qfFswLTldK3EAfgBUcQB-AFZxAH4AWHQAHltccHtMfV9cJF1bXHB7TH1ccHtEaWdpdH1fXCRdKnEAfgAmc3IAMnNjYWxhLmNvbGxlY3Rpb24uaW1tdXRhYmxlLkxpc3QkU2VyaWFsaXphdGlvblByb3h5AAAAAAAAAAEDAAB4cHQACmNvbXBhbnlfaWR0AAxjb21wYW55X2NvZGV0AA51c2VyX2FjY2Vzc19pZHQAFmJlbmV2aXR5X2FjY291bnRfYWxpYXN0AA9zdWJzY3JpcHRpb25faWR0ABNzdWJzY3JpcHRpb25fYW1vdW50dAARc3Vic2NyaXB0aW9uX25hbWV0ABx0cmFuc2FjdGlvbl9yZWZlcmVuY2VfbnVtYmVydAASdHJhbnNhY3Rpb25fc291cmNldAAec3Vic2NyaXB0aW9uX2NyZWF0ZWRfdGltZXN0YW1wdAAIZGF0ZV9rZXl0ABJleGNoYW5nZV9yYXRlX2RhdGV0AAlyZWNpcGllbnR0AAxwb3J0Zm9saW9faWR0ABVwbGVkZ2Vfc2l0ZV9wbGVkZ2VfaWR0AAltYXRjaF9jYXB0AA1tYXRjaF9vcHRfb3V0dAANcGxlZGdlX3NvdXJjZXQAC3BsZWRnZV90eXBldAANcGxlZGdlX3N0YXR1c3QAFHRyYW5zYWN0aW9uX2N1cnJlbmN5dAASZXhjaGFuZ2VfcmF0ZV9jb2RldAAQZGVhY3RpdmF0ZWRfZmxhZ3QAAnRzc3IALHNjYWxhLmNvbGxlY3Rpb24uaW1tdXRhYmxlLkxpc3RTZXJpYWxpemVFbmQkilxjW_dTC20CAAB4cHhzcQB-AFtxAH4AKnEAfgA5cQB-ADlxAH4AOXEAfgAqcQB-AEFxAH4AOXEAfgA5cQB-ADlxAH4AOXEAfgAqcQB-ACpxAH4AOXEAfgAqcQB-ADlxAH4AQXEAfgA5cQB-ADlxAH4AOXEAfgA5cQB-ADlxAH4AOXEAfgBKcQB-ACpxAH4Adnh1cQB-AA4AAAAAc3EAfgBSAAAAAHEAfgBUc3EAfgBSAAAAAHQAMChbXHB7TH1fXCRdW1xwe0x9XHB7RGlnaXR9X1wkXSp8WzAtOV0rKShcLiguKykpP3NxAH4AUgAAAAB0ADYoW1xwe0x9X1wkXVtccHtMfVxwe0RpZ2l0fV9cJF0qfFswLTldKykoXC4oLispKT98XCp8XF90ACVbXHB7TH1fXCRdW1xwe0x9XHB7RGlnaXR9X1wkXSp8WzAtOV0rcQB-AFRxAH4Ae3EAfgB9cQB-AFpxAH4ADXNxAH4AW3QAAl8xdAACXzJxAH4AdnhzcQB-AFtxAH4AE3EAfgAicQB-AHZ4dXEAfgAOAAAAAnEAfgATcQB-ACI>') conversion for the retract sink
    at org.apache.flink.table.planner.sinks.TableSinkUtils$.inferSinkPhysicalDataType(TableSinkUtils.scala:219)
    at org.apache.flink.table.planner.sinks.TableSinkUtils$.inferSinkPhysicalSchema(TableSinkUtils.scala:136)
    at org.apache.flink.table.planner.delegation.PlannerBase.translateToRel(PlannerBase.scala:280)
    at org.apache.flink.table.planner.delegation.PlannerBase.$anonfun$translate$1(PlannerBase.scala:185)
    at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
    at scala.collection.Iterator.foreach(Iterator.scala:937)
    at scala.collection.Iterator.foreach$(Iterator.scala:937)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
    at scala.collection.IterableLike.foreach(IterableLike.scala:70)
    at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    at scala.collection.TraversableLike.map(TraversableLike.scala:233)
    at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:185)
    at org.apache.flink.table.api.bridge.internal.AbstractStreamTableEnvironmentImpl.toStreamInternal(AbstractStreamTableEnvironmentImpl.java:223)
    at org.apache.flink.table.api.bridge.scala.internal.StreamTableEnvironmentImpl.toRetractStream(StreamTableEnvironmentImpl.scala:222)
    at io.benevity.data.PaymentsDataService$.main(PaymentsDataService.scala:555)
    at io.benevity.data.PaymentsDataService.main(PaymentsDataService.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:355)

尝试过这个并期望它能像 Flink 1.9 中那样工作

val paymentSubscriptionsStream: DataStream[(Boolean, PaymentSubscriptions)] =
  sTableEnv
    .toRetractStream[PaymentSubscriptions](joinedStreams)
    .filter(x => x._1)

但是出现“不支持...在撤回流中转换”错误。

scala apache-flink
1个回答
0
投票

解决方案

只需在 flink dist 目录中交换 planner jar (TablePlanner 和 TablePlannerLoader):

mv lib/flink-table-planner-loader* opt/
mv opt/flink-table-planner_* lib/

原因

从 Flink 1.15 开始,由于缺乏熟悉 scala 的开发人员FLIP-265,社区一直在尝试删除 planner api 的 scala 实现。

另请参阅:

FLINK-24427 在 API 的 flink-table-planner 中隐藏 Scala

Flink-25128 重组table模块,引入flink-table-planner-loader

© www.soinside.com 2019 - 2024. All rights reserved.