You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`Iceberg`|`operation`|`updsert`| Iceberg operation. One of `upsert`, `append` or `overwrite`. |
49
+
|`Iceberg`|`upsert.equality.fields`|`symbol`| Comma separated list of fields used for upsert. It must match partition fields. Required if `operation` = `upsert`. |
50
+
51
+
52
+
### Checkpoints
53
+
54
+
Checkpointing must be enabled. Iceberg commits writes on checkpoint.
55
+
56
+
When running locally, the application enables checkpoints programmatically, every 10 seconds.
57
+
When deployed to Managed Service for Apache Flink, checkpointing is controlled by the application configuration.
58
+
59
+
60
+
### Known limitations
61
+
62
+
At the moment there are current limitations concerning Flink Iceberg integration:
63
+
* Doesn't support Iceberg Table with hidden partitioning
64
+
* Doesn't support adding columns, removing columns, renaming columns or changing columns.
65
+
66
+
### Schema and schema evolution
67
+
68
+
The application must "know" the AVRO schema on start.
69
+
The schema cannot be dynamically inferred based on the incoming records, for example using a schema registry.
70
+
This is due to a limitation of the Flink Iceberg integration, that requires knowing the table schema upfront.
71
+
72
+
This implementation does support schema evolution in the incoming data, as long as new schema versions are FORWARD compatible.
73
+
Schema changes are not propagated to Iceberg.
74
+
As long as the schema of incoming records is FORWARD compatible, the application deserializes incoming records using
75
+
the schema it knows. Any new field in the incoming record is discarded.
76
+
77
+
In this example, the schema is loaded from a schema definition file, [price.avsc](./src/main/resources/price.avsc) embedded
78
+
with the application.
79
+
It is technically possible to fetch the schema on application start from an external source, like a schema registry or a
80
+
schema definition file in an S3 bucket. This is beyond the scope of this example.
81
+
82
+
### Running locally, in IntelliJ
83
+
84
+
You can run this example directly in IntelliJ, without any local Flink cluster or local Flink installation.
85
+
86
+
See [Running examples locally](https://github.com/nicusX/amazon-managed-service-for-apache-flink-examples/blob/main/java/running-examples-locally.md) for details.
0 commit comments