This is an automated email from the ASF dual-hosted git repository. vinish pushed a change to branch PolicySync-RFC in repository https://gitbox.apache.org/repos/asf/incubator-xtable.git
omit 9a8de262 Add RFC for XCatalogSync - Synchronize access control policies across catalogs add 2e71e156 [590] Changes in xtable-core for Hudi Catalog Sync add 67946b98 Update conversion sources add b3e03e55 [40] Add commit-level metadata and source-target id mapping add f194f4cb [590] Add Hudi HMS Catalog Sync Implementation add 03e5b022 [590] Add Hudi Glue Catalog Sync Implementation add dc209962 Add change proposal for conversion of deletion vectors add c76692b8 Add base representation of storage files add fc1ba78a Fix flaky test, ignore order of elements in list validation add 546edaa3 Add continous sync mode for utilities bundle, add additional testing add 50e51814 minor fixes recommended from static analysis tooling add 23d870ed Modified incremental safe check which does not depend on snapshots list order Co-authored-by: Timothy Brown <t...@onehouse.ai> add dafe24a8 Add support for bucket partition transform, ignore void partition in iceberg source add 680cf9c1 Handle timestamp_ntz in delta and iceberg add ffe898a5 fix docker file syntax issue add 5f25adc8 Refactor RunSync Class for Improved Modularity and Reusability add e1b27c7a Add how-to docs for catalog sync add 3a5ea728 add mailing list for discussions, update issues list add c2a22803 move to commit mailing list, issues does not exist add ada055bf Add RFC for XCatalogSync - Synchronize access control policies across catalogs add 4ba474ed Update models in RFC This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (9a8de262) \ N -- N -- N refs/heads/PolicySync-RFC (4ba474ed) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. No new revisions were added by this update. Summary of changes: .asf.yaml | 1 + Dockerfile | 2 +- README.md | 2 +- pom.xml | 4 +- rfc/rfc-2/2 - Deletion Info Conversion.md | 227 +++++++++ rfc/rfc-4/rfc4.md | 33 +- website/README.md | 4 + website/docs/features-and-limitations.md | 8 + website/docs/how-to-catalog-sync.md | 205 ++++++++ website/docs/how-to.md | 4 +- website/sidebars.js | 3 +- .../org/apache/xtable/model/InternalSnapshot.java | 3 + .../java/org/apache/xtable/model/TableChange.java | 8 +- .../xtable/model/metadata/TableSyncMetadata.java | 22 +- .../model/schema/InternalPartitionField.java | 4 + .../apache/xtable/model/schema/InternalType.java | 14 +- .../model/schema/PartitionTransformType.java | 3 +- .../org/apache/xtable/model/storage/FilesDiff.java | 6 +- .../xtable/model/storage/InternalDataFile.java | 19 +- .../apache/xtable/model/storage/InternalFile.java | 56 +++ .../{DataFilesDiff.java => InternalFilesDiff.java} | 38 +- .../xtable/model/storage/PartitionFileGroup.java | 12 +- .../xtable/spi/extractor/ConversionSource.java | 14 + .../apache/xtable/spi/sync/ConversionTarget.java | 16 +- .../apache/xtable/spi/sync/TableFormatSync.java | 23 +- .../model/metadata/TestTableSyncMetadata.java | 20 +- .../xtable/model/storage/TestDataFilesDiff.java | 8 +- .../apache/xtable/model/storage/TestFilesDiff.java | 2 +- .../spi/extractor/TestExtractFromSource.java | 20 +- .../xtable/spi/sync/TestTableFormatSync.java | 170 +++++-- xtable-aws/pom.xml | 8 + .../org/apache/xtable/glue/GlueCatalogConfig.java | 11 + .../xtable/glue/GlueCatalogConversionSource.java | 22 +- .../glue/GlueCatalogPartitionSyncOperations.java | 331 +++++++++++++ .../apache/xtable/glue/GlueCatalogSyncClient.java | 38 +- .../glue/GlueCatalogTableBuilderFactory.java | 5 +- .../apache/xtable/glue/GlueCatalogTableUtils.java | 56 +++ .../apache/xtable/glue/GlueSchemaExtractor.java | 2 +- .../glue/table/HudiGlueCatalogTableBuilder.java | 185 ++++++++ .../xtable/glue/GlueCatalogSyncTestBase.java | 7 + .../TestGlueCatalogPartitionSyncOperations.java | 519 +++++++++++++++++++++ .../xtable/glue/TestGlueCatalogSyncClient.java | 87 +++- .../table/TestHudiGlueCatalogTableBuilder.java | 125 +++++ xtable-core/pom.xml | 6 + .../apache/xtable/avro/AvroSchemaConverter.java | 24 +- .../apache/xtable/catalog/CatalogPartition.java | 31 +- .../xtable/catalog/CatalogPartitionEvent.java | 49 ++ .../catalog/CatalogPartitionSyncOperations.java | 99 ++++ ...eBuilder.java => CatalogPartitionSyncTool.java} | 20 +- .../org/apache/xtable/catalog/CatalogUtils.java | 31 ++ .../xtable/conversion/ConversionController.java | 9 +- .../apache/xtable/delta/DeltaConversionSource.java | 18 +- .../apache/xtable/delta/DeltaConversionTarget.java | 88 +++- .../delta/DeltaDataFileUpdatesExtractor.java | 19 +- .../xtable/delta/DeltaPartitionExtractor.java | 37 +- .../apache/xtable/delta/DeltaSchemaExtractor.java | 111 +---- .../xtable/exception/CatalogSyncException.java | 4 + .../xtable/hudi/BaseFileUpdatesExtractor.java | 17 +- .../apache/xtable/hudi/HudiConversionSource.java | 7 + .../apache/xtable/hudi/HudiConversionTarget.java | 76 +-- .../apache/xtable/hudi/HudiDataFileExtractor.java | 6 +- .../apache/xtable/hudi/HudiFileStatsExtractor.java | 39 +- .../org/apache/xtable/hudi/HudiTableManager.java | 12 +- .../hudi/catalog/HudiCatalogPartitionSyncTool.java | 471 +++++++++++++++++++ .../HudiCatalogTablePropertiesExtractor.java | 148 ++++++ .../xtable/hudi/catalog/HudiInputFormatUtils.java | 112 +++++ .../xtable/iceberg/IcebergConversionSource.java | 56 ++- .../xtable/iceberg/IcebergConversionTarget.java | 45 +- .../xtable/iceberg/IcebergDataFileUpdatesSync.java | 40 +- .../iceberg/IcebergPartitionSpecExtractor.java | 36 +- .../iceberg/IcebergPartitionValueConverter.java | 13 +- .../xtable/iceberg/IcebergSchemaExtractor.java | 3 +- .../apache/xtable/schema/SparkSchemaExtractor.java | 134 ++++++ .../org/apache/xtable/ITConversionController.java | 58 +++ .../java/org/apache/xtable/TestIcebergTable.java | 14 +- .../org/apache/xtable/ValidationTestHelper.java | 8 +- .../xtable/avro/TestAvroSchemaConverter.java | 4 +- .../conversion/TestConversionController.java | 59 ++- .../xtable/delta/ITDeltaConversionSource.java | 2 +- .../xtable/delta/TestDeltaPartitionExtractor.java | 37 ++ .../xtable/delta/TestDeltaSchemaExtractor.java | 127 +---- .../org/apache/xtable/delta/TestDeltaSync.java | 139 +++++- .../apache/xtable/hudi/ITHudiConversionTarget.java | 174 ++++++- .../xtable/hudi/TestBaseFileUpdatesExtractor.java | 19 +- .../xtable/hudi/TestHudiConversionTarget.java | 7 +- .../catalog/TestHudiCatalogPartitionSyncTool.java | 323 +++++++++++++ .../TestHudiCatalogTablePropertiesExtractor.java | 182 ++++++++ .../hudi/catalog/TestHudiInputFormatUtils.java | 118 +++++ .../xtable/iceberg/ITIcebergConversionSource.java | 41 +- .../iceberg/TestIcebergConversionSource.java | 4 +- .../xtable/iceberg/TestIcebergDataHelper.java | 9 +- .../iceberg/TestIcebergPartitionSpecExtractor.java | 126 +++-- .../TestIcebergPartitionValueConverter.java | 25 + .../xtable/iceberg/TestIcebergSchemaExtractor.java | 12 +- .../org/apache/xtable/iceberg/TestIcebergSync.java | 123 ++++- .../TestSparkSchemaExtractor.java} | 262 ++--------- .../org/apache/xtable/testutil/ITTestUtils.java | 2 + xtable-hive-metastore/pom.xml | 8 + .../org/apache/xtable/hms/HMSCatalogConfig.java | 11 + .../hms/HMSCatalogPartitionSyncOperations.java | 221 +++++++++ .../apache/xtable/hms/HMSCatalogSyncClient.java | 22 +- .../xtable/hms/HMSCatalogTableBuilderFactory.java | 7 +- .../hms/table/HudiHMSCatalogTableBuilder.java | 185 ++++++++ ...ntTestBase.java => HMSCatalogSyncTestBase.java} | 10 +- .../hms/TestHMSCatalogPartitionSyncOperations.java | 470 +++++++++++++++++++ .../xtable/hms/TestHMSCatalogSyncClient.java | 95 ++-- .../hms/TestHMSCatalogTableBuilderFactory.java | 8 +- .../hms/table/TestDeltaHMSCatalogTableBuilder.java | 4 +- .../hms/table/TestHudiHMSCatalogTableBuilder.java | 107 +++++ .../table/TestIcebergHMSCatalogTableBuilder.java | 4 +- .../apache/xtable/utilities/RunCatalogSync.java | 34 +- .../java/org/apache/xtable/utilities/RunSync.java | 259 +++++++--- .../main/resources/xtable-conversion-defaults.yaml | 1 + .../org/apache/xtable/utilities/ITRunSync.java | 128 +++++ .../org/apache/xtable/utilities/TestRunSync.java | 37 +- .../src/test/resources/catalogConfig.yaml | 1 + .../src/test/resources/my_config.yaml | 13 +- 117 files changed, 6552 insertions(+), 1056 deletions(-) create mode 100644 rfc/rfc-2/2 - Deletion Info Conversion.md create mode 100644 website/docs/how-to-catalog-sync.md create mode 100644 xtable-api/src/main/java/org/apache/xtable/model/storage/InternalFile.java rename xtable-api/src/main/java/org/apache/xtable/model/storage/{DataFilesDiff.java => InternalFilesDiff.java} (62%) create mode 100644 xtable-aws/src/main/java/org/apache/xtable/glue/GlueCatalogPartitionSyncOperations.java create mode 100644 xtable-aws/src/main/java/org/apache/xtable/glue/GlueCatalogTableUtils.java create mode 100644 xtable-aws/src/main/java/org/apache/xtable/glue/table/HudiGlueCatalogTableBuilder.java create mode 100644 xtable-aws/src/test/java/org/apache/xtable/glue/TestGlueCatalogPartitionSyncOperations.java create mode 100644 xtable-aws/src/test/java/org/apache/xtable/glue/table/TestHudiGlueCatalogTableBuilder.java copy xtable-api/src/main/java/org/apache/xtable/model/storage/DataLayoutStrategy.java => xtable-core/src/main/java/org/apache/xtable/catalog/CatalogPartition.java (52%) create mode 100644 xtable-core/src/main/java/org/apache/xtable/catalog/CatalogPartitionEvent.java create mode 100644 xtable-core/src/main/java/org/apache/xtable/catalog/CatalogPartitionSyncOperations.java copy xtable-core/src/main/java/org/apache/xtable/catalog/{CatalogTableBuilder.java => CatalogPartitionSyncTool.java} (54%) create mode 100644 xtable-core/src/main/java/org/apache/xtable/hudi/catalog/HudiCatalogPartitionSyncTool.java create mode 100644 xtable-core/src/main/java/org/apache/xtable/hudi/catalog/HudiCatalogTablePropertiesExtractor.java create mode 100644 xtable-core/src/main/java/org/apache/xtable/hudi/catalog/HudiInputFormatUtils.java create mode 100644 xtable-core/src/main/java/org/apache/xtable/schema/SparkSchemaExtractor.java create mode 100644 xtable-core/src/test/java/org/apache/xtable/hudi/catalog/TestHudiCatalogPartitionSyncTool.java create mode 100644 xtable-core/src/test/java/org/apache/xtable/hudi/catalog/TestHudiCatalogTablePropertiesExtractor.java create mode 100644 xtable-core/src/test/java/org/apache/xtable/hudi/catalog/TestHudiInputFormatUtils.java copy xtable-core/src/test/java/org/apache/xtable/{delta/TestDeltaSchemaExtractor.java => schema/TestSparkSchemaExtractor.java} (73%) create mode 100644 xtable-hive-metastore/src/main/java/org/apache/xtable/hms/HMSCatalogPartitionSyncOperations.java create mode 100644 xtable-hive-metastore/src/main/java/org/apache/xtable/hms/table/HudiHMSCatalogTableBuilder.java rename xtable-hive-metastore/src/test/java/org/apache/xtable/hms/{HMSCatalogSyncClientTestBase.java => HMSCatalogSyncTestBase.java} (95%) create mode 100644 xtable-hive-metastore/src/test/java/org/apache/xtable/hms/TestHMSCatalogPartitionSyncOperations.java create mode 100644 xtable-hive-metastore/src/test/java/org/apache/xtable/hms/table/TestHudiHMSCatalogTableBuilder.java create mode 100644 xtable-utilities/src/test/java/org/apache/xtable/utilities/ITRunSync.java copy demo/presto/catalog/hive.properties => xtable-utilities/src/test/resources/my_config.yaml (77%)