Commit 9b50cd2
committed
Delta Universal Format (UniForm) allows you to read Delta tables with Iceberg clients.
## Description
UniForm takes advantage of the fact that both Delta and Iceberg consist of Parquet data files and a metadata layer. UniForm automatically generates Iceberg metadata asynchronously, allowing Iceberg clients to read Delta tables as if they were Iceberg tables. You can expect negligible Delta write overhead when UniForm is enabled, as the Iceberg conversion and transaction occurs asynchronously after the Delta commit.
A single copy of the data files provides access to both format clients.
This PR adds the implementation for Universal Format (Iceberg) as well as the IcebergCompatV1 protocol validation.
To create a table with UniForm:
```sql
CREATE TABLE T(c1 INT) USING DELTA SET TBLPROPERTIES(
'delta.universalFormat.enabledFormats' = 'iceberg');
```
To enable UniForm on an existing table
```sql
ALTER TABLE T SET TBLPROPERTIES(
'delta.columnMapping.mode' = 'name',
'delta.universalFormat.enabledFormats' = 'iceberg');
```
See the IcebergCompatV1 protocol specification PR here: #1869.
New UT `iceberg/src/test/scala/org/apache/spark/sql/delta/ConvertToIcebergSuite.scala` as well as manual local publishing and integration testing with two spark shells, one loaded with Delta, the other with Iceberg.
## Does this PR introduce _any_ user-facing changes?
Optional delta table property `delta.universalFormat.enabledFormats`.
Closes #1870
GitOrigin-RevId: 8a4723680b12bb112190ee1f94a5eae9c4904a831 parent 27111ee commit 9b50cd2
File tree
24 files changed
+2622
-8
lines changed- icebergShaded
- iceberg_src_patches
- iceberg/src
- main/scala/org/apache/spark/sql/delta/icebergShaded
- test/scala/org/apache/spark/sql/delta
- spark/src/main
- resources/error
- scala/org/apache/spark/sql/delta
- commands
- hooks
- sources
- util
24 files changed
+2622
-8
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
272 | 272 | | |
273 | 273 | | |
274 | 274 | | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
275 | 282 | | |
276 | 283 | | |
277 | 284 | | |
278 | 285 | | |
279 | 286 | | |
280 | 287 | | |
281 | 288 | | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
| 289 | + | |
287 | 290 | | |
288 | 291 | | |
289 | | - | |
290 | | - | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
291 | 303 | | |
292 | 304 | | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
293 | 336 | | |
294 | 337 | | |
295 | 338 | | |
| |||
0 commit comments