[flink] optimize flink Data-Evolution-Merge-Into (#7324)

This PR optimize Data-Evolution-Merge-Into in several aspects:
1. Introduce a MergeIntoUpdateChecker to check if some global-indexed
columns are updated (This is same as Spark's implementation)
2. Use calcite to rename target table (current implementation is based
on regex, which is very unstable)
3. Use calcite to find _row_id field (if exists) in source table. We can
eliminate join process.
6 files changed
tree: c95476ca033e8dd625e1d00cc415910a23d226e6
  1. .github/
  2. .idea/
  3. .mvn/
  4. docs/
  5. licenses/
  6. paimon-api/
  7. paimon-arrow/
  8. paimon-benchmark/
  9. paimon-bundle/
  10. paimon-codegen/
  11. paimon-codegen-loader/
  12. paimon-common/
  13. paimon-core/
  14. paimon-docs/
  15. paimon-e2e-tests/
  16. paimon-filesystems/
  17. paimon-flink/
  18. paimon-format/
  19. paimon-hive/
  20. paimon-iceberg/
  21. paimon-lance/
  22. paimon-python/
  23. paimon-service/
  24. paimon-spark/
  25. paimon-test-utils/
  26. paimon-vfs/
  27. tools/
  28. .asf.yaml
  29. .gitignore
  30. .gitmodules
  31. .scalafmt.conf
  32. AGENTS.md
  33. CODE_OF_CONDUCT.md
  34. copyright.txt
  35. LICENSE
  36. NOTICE
  37. pom.xml
  38. README.md
README.md

Paimon

License Get on Slack

Apache Paimon is a lake format that enables building a Realtime Lakehouse Architecture with Flink and Spark for both streaming and batch operations. Paimon innovatively combines lake format and LSM structure, bringing realtime streaming updates into the lake architecture.

Background and documentation are available at https://paimon.apache.org

Paimon's former name was Flink Table Store, developed from the Flink community. The architecture refers to some design concepts of Iceberg. Thanks to Apache Flink and Apache Iceberg.

Collaboration

Paimon tracks issues in GitHub and prefers to receive contributions as pull requests.

Mailing Lists

Please make sure you are subscribed to the mailing list you are posting to! If you are not subscribed to the mailing list, your message will either be rejected (dev@ list) or you won't receive the response (user@ list).

Slack

You can join the Paimon community on Slack. Paimon channel is in ASF Slack workspace.

  • Anyone with an @apache.org email address can become a full member of the ASF Slack workspace. Search Paimon channel and join it.
  • If you don't have an @apache.org email address, you can email to user@paimon.apache.org to apply for an ASF Slack invitation. Then join Paimon channel.

Building

JDK 8/11 is required for building the project. Maven version >=3.6.3.

  • Run the mvn clean install -DskipTests command to build the project.
  • Run the mvn spotless:apply to format the project (both Java and Scala).
  • IDE: Mark paimon-common/target/generated-sources/antlr4 as Sources Root.

How to Contribute

Contribution Guide.

License

The code in this repository is licensed under the Apache Software License 2.