[Feature]: Support managing tables with multiple formats under one Catalog
Description
Currently, Table formats are strongly correlated with Catalog type, which makes the Arctic hard to use in some production situations.
We should support managing all types of table formats if the catalog type is able to create the table.
Use case/motivation
Catalog(type=hive)support TableTypes:
- Hive: native hive table
- Iceberg: native iceberg table which uses
org.apache.iceberg.hive.HiveCatalogas implement. - Mixed-Hive: Mixed Streaming format. the base store is a Hive table.
- Mixed-Iceberg: Mixed Streaming format, the base store and change store are iceberg tables created by HadoopTables.
Catalog(type=arctic) support TableTypes:
- Iceberg: native iceberg table which uses specific iceberg catalog class as implement.
- Mixed-Iceberg: Mixed Streaming format, the base store and change store are iceberg tables created by HadoopTables.
RoadMap
Milestone 0.5.0
Introduce the concept of the InternalCatalog and ExternalCatalog
- https://github.com/NetEase/arctic/issues/1544
Implement the Mixed-Iceberg format above on the Iceberg format in any catalog type
- https://github.com/NetEase/arctic/issues/1362
Make AMS as an Iceberg Catalog provider via implement RestCatalogAPI
- https://github.com/NetEase/arctic/issues/1339
Milestone 0.5.0 later
support mixed-hive and mixed-iceberg in same catalog(Milestone 0.5.0 later)
- https://github.com/NetEase/arctic/issues/1336
- https://github.com/NetEase/arctic/issues/1337
- https://github.com/NetEase/amoro/issues/2156
Support all types of table formats in the same internal catalog.
- https://github.com/NetEase/arctic/issues/1338
Make engines support unified catalog
- https://github.com/NetEase/amoro/issues/2276
- https://github.com/NetEase/arctic/issues/1341
- #2344
- #2345
- https://github.com/NetEase/arctic/issues/1343
Related issues
No response
Are you willing to submit a PR?
- [X] Yes I am willing to submit a PR!
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
The design doc is here. https://docs.google.com/document/d/1Q5O2WAlHqGiWM43GbJoDvmoiejAy5DZUpXmIliYLP0k/edit#