Add tableProperties to TableAuditEvent#601
Conversation
jiang95-dev
left a comment
There was a problem hiding this comment.
What is the use case for adding table properties?
We should cap on the size of table properties as some can be quite large. See this PR: https://github.com/linkedin-multiproduct/li-openhouse/pull/688. Large events can cause OOM and losing events.
Added a new configuration property |
| * Iterates the allowlist rather than the source so cost is O(|allowlist|) regardless of source | ||
| * size. | ||
| */ | ||
| private Map<String, String> filterTableProperties(Map<String, String> source) { |
There was a problem hiding this comment.
Can we exclude some system level operation properties such as dlo specific which can be very large? (cc: @jiang95-dev )?
There was a problem hiding this comment.
We also ran into OOM issues earlier while logging large events.
|
@jiang95-dev the table property audit is required for a partner team's observability use case which must read freshness watermarks from table properties every time a commit is made @jiang95-dev , @abhisheknath2011 the existing table property config the keys we plan to add:
|
|
@james5418 is redundant with the other config. we can limit size already, by only allowing keys with small size. lets only have |
Summary
Surface a snapshot of Iceberg table properties on the per-commit TableAuditEvent.
Emission is gated by allowlist:
cluster.iceberg.tables.audit.table-properties-allowlist[]Changes
Testing Done
./gradlew :services:tables:test --tests IcebergSnapshotsApiHandlerAuditTest
Additional Information
For all the boxes checked, include additional details of the changes made in this pull request.