@@ -308,6 +308,11 @@ the data and delete files of Iceberg tables are stored in S3. An example configu
308
308
hive.s3.endpoint=http://192.168.0.103:9878
309
309
hive.s3.path-style-access=true
310
310
311
+ Presto C++ Support
312
+ ^^^^^^^^^^^^^^^^^^
313
+
314
+ ``HIVE ``, ``NESSIE ``, ``REST ``, and ``HADOOP `` Iceberg catalogs are supported in Presto C++.
315
+
311
316
Configuration Properties
312
317
------------------------
313
318
@@ -319,69 +324,69 @@ Configuration Properties
319
324
320
325
The following configuration properties are available for all catalog types:
321
326
322
- ======================================================= ============================================================= ============
323
- Property Name Description Default
324
- ======================================================= ============================================================= ============
325
- ``iceberg.catalog.type `` The catalog type for Iceberg tables. The available values ``HIVE ``
327
+ ======================================================= ============================================================= ================================== =================== =========================================
328
+ Property Name Description Default Presto Java Support Presto C++ Support
329
+ ======================================================= ============================================================= ================================== =================== =========================================
330
+ ``iceberg.catalog.type `` The catalog type for Iceberg tables. The available values ``HIVE `` Yes Yes, only needed on coordinator
326
331
are ``HIVE ``, ``HADOOP ``, and ``NESSIE `` and ``REST ``.
327
332
328
- ``iceberg.hadoop.config.resources `` The path(s) for Hadoop configuration resources.
333
+ ``iceberg.hadoop.config.resources `` The path(s) for Hadoop configuration resources. Yes Yes, only needed on coordinator
329
334
330
335
Example: ``/etc/hadoop/conf/core-site.xml. `` This property
331
336
is required if the iceberg.catalog.type is ``hadoop ``.
332
337
Otherwise, it will be ignored.
333
338
334
- ``iceberg.file-format `` The storage file format for Iceberg tables. The available ``PARQUET ``
339
+ ``iceberg.file-format `` The storage file format for Iceberg tables. The available ``PARQUET `` Yes NA
335
340
values are ``PARQUET `` and ``ORC ``.
336
341
337
- ``iceberg.compression-codec `` The compression codec to use when writing files. The ``GZIP ``
342
+ ``iceberg.compression-codec `` The compression codec to use when writing files. The ``GZIP `` Yes NA
338
343
available values are ``NONE ``, ``SNAPPY ``, ``GZIP ``,
339
344
``LZ4 ``, and ``ZSTD ``.
340
345
341
- ``iceberg.max-partitions-per-writer `` The Maximum number of partitions handled per writer. ``100 ``
346
+ ``iceberg.max-partitions-per-writer `` The maximum number of partitions handled per writer. ``100 `` Yes NA
342
347
343
- ``iceberg.minimum-assigned-split-weight `` A decimal value in the range (0, 1] is used as a minimum ``0.05 ``
348
+ ``iceberg.minimum-assigned-split-weight `` A decimal value in the range (0, 1] is used as a minimum ``0.05 `` Yes Yes
344
349
for weights assigned to each split. A low value may improve
345
350
performance on tables with small files. A higher value may
346
351
improve performance for queries with highly skewed
347
352
aggregations or joins.
348
353
349
- ``iceberg.enable-merge-on-read-mode `` Enable reading base tables that use merge-on-read for ``true ``
354
+ ``iceberg.enable-merge-on-read-mode `` Enable reading base tables that use merge-on-read for ``true `` Yes Yes, only needed on coordinator
350
355
updates.
351
356
352
- ``iceberg.delete-as-join-rewrite-enabled `` When enabled, equality delete row filtering is applied ``true ``
357
+ ``iceberg.delete-as-join-rewrite-enabled `` When enabled, equality delete row filtering is applied ``true `` Yes Yes
353
358
as a join with the data of the equality delete files.
354
359
355
- ``iceberg.enable-parquet-dereference-pushdown `` Enable parquet dereference pushdown. ``true ``
360
+ ``iceberg.enable-parquet-dereference-pushdown `` Enable parquet dereference pushdown. ``true `` Yes NA
356
361
357
- ``iceberg.statistic-snapshot-record-difference-weight `` The amount that the difference in total record count matters
362
+ ``iceberg.statistic-snapshot-record-difference-weight `` The amount that the difference in total record count matters Yes Yes, only needed on coordinator
358
363
when calculating the closest snapshot when picking
359
364
statistics. A value of 1 means a single record is equivalent
360
365
to 1 millisecond of time difference.
361
366
362
- ``iceberg.pushdown-filter-enabled `` Experimental: Enable filter pushdown for Iceberg. This is ``false ``
363
- only supported with Native Worker .
367
+ ``iceberg.pushdown-filter-enabled `` Experimental: Enable filter pushdown for Iceberg. This is ``false `` No Yes
368
+ only supported with Presto C++ .
364
369
365
- ``iceberg.rows-for-metadata-optimization-threshold `` The maximum number of partitions in an Iceberg table to ``1000 ``
370
+ ``iceberg.rows-for-metadata-optimization-threshold `` The maximum number of partitions in an Iceberg table to ``1000 `` Yes Yes
366
371
allow optimizing queries of that table using metadata. If
367
372
an Iceberg table has more partitions than this threshold,
368
373
metadata optimization is skipped.
369
374
370
375
Set to ``0 `` to disable metadata optimization.
371
376
372
- ``iceberg.split-manager-threads `` Number of threads to use for generating Iceberg splits. ``Number of available processors ``
377
+ ``iceberg.split-manager-threads `` Number of threads to use for generating Iceberg splits. ``Number of available processors `` Yes Yes, only needed on coordinator
373
378
374
- ``iceberg.metadata-previous-versions-max `` The max number of old metadata files to keep in current ``100 ``
375
- metadata log.
379
+ ``iceberg.metadata-previous-versions-max `` The maximum number of old metadata files to keep in ``100 `` Yes NA
380
+ current metadata log.
376
381
377
- ``iceberg.metadata-delete-after-commit `` Set to ``true `` to delete the oldest metadata files after ``false ``
382
+ ``iceberg.metadata-delete-after-commit `` Set to ``true `` to delete the oldest metadata files after ``false `` Yes NA
378
383
each commit.
379
384
380
- ``iceberg.metrics-max-inferred-column `` The maximum number of columns for which metrics ``100 ``
385
+ ``iceberg.metrics-max-inferred-column `` The maximum number of columns for which metrics ``100 `` Yes NA
381
386
are collected.
382
- ``iceberg.max-statistics-file-cache-size `` Maximum size in bytes that should be consumed by the ``256MB ``
387
+ ``iceberg.max-statistics-file-cache-size `` Maximum size in bytes that should be consumed by the ``256MB `` Yes Yes, only needed on coordinator
383
388
statistics file cache.
384
- ======================================================= ============================================================= ============
389
+ ======================================================= ============================================================= ================================== =================== =========================================
385
390
386
391
Table Properties
387
392
------------------------
@@ -482,34 +487,40 @@ Deprecated Property Name New Property Name
482
487
``metrics_max_inferred_column `` ``write.metadata.metrics.max-inferred-column-defaults ``
483
488
======================================= ===============================================================
484
489
490
+ Presto C++ Support
491
+ ^^^^^^^^^^^^^^^^^^
492
+
493
+ Table properties are not supported in Presto C++ because write operations have not been implemented.
485
494
486
495
Session Properties
487
496
------------------
488
497
489
498
Session properties set behavior changes for queries executed within the given session.
490
499
491
- ===================================================== ======================================================================
492
- Property Name Description
493
- ===================================================== ======================================================================
494
- ``iceberg.delete_as_join_rewrite_enabled `` Overrides the behavior of the connector property
500
+ ===================================================== ======================================================================= =================== ==================
501
+ Property Name Description Presto Java Support Presto C++ Support
502
+ ===================================================== ======================================================================= =================== ==================
503
+ ``iceberg.delete_as_join_rewrite_enabled `` Overrides the behavior of the connector property Yes Yes
495
504
``iceberg.delete-as-join-rewrite-enabled `` in the current session.
496
- ``iceberg.hive_statistics_merge_strategy `` Overrides the behavior of the connector property
505
+ ``iceberg.hive_statistics_merge_strategy `` Overrides the behavior of the connector property Yes Yes
497
506
``iceberg.hive-statistics-merge-strategy `` in the current session.
498
- ``iceberg.rows_for_metadata_optimization_threshold `` Overrides the behavior of the connector property
507
+ ``iceberg.rows_for_metadata_optimization_threshold `` Overrides the behavior of the connector property Yes Yes
499
508
``iceberg.rows-for-metadata-optimization-threshold `` in the current
500
509
session.
501
- ``iceberg.target_split_size_bytes `` Overrides the target split size for all tables in a query in bytes.
510
+ ``iceberg.target_split_size_bytes `` Overrides the target split size for all tables in a query in bytes. Yes Yes
502
511
Set to 0 to use the value in each Iceberg table's
503
512
``read.split.target-size `` property.
504
- ``iceberg.affinity_scheduling_file_section_size `` When the ``node_selection_strategy `` or
513
+ ``iceberg.affinity_scheduling_file_section_size `` When the ``node_selection_strategy `` or Yes Yes
505
514
``hive.node-selection-strategy `` property is set to ``SOFT_AFFINITY ``,
506
515
this configuration property will change the size of a file chunk that
507
516
is hashed to a particular node when determining the which worker to
508
517
assign a split to. Splits which read data from the same file within
509
518
the same chunk will hash to the same node. A smaller chunk size will
510
519
result in a higher probability splits being distributed evenly across
511
520
the cluster, but reduce locality.
512
- ===================================================== ======================================================================
521
+ ``iceberg.parquet_dereference_pushdown_enabled `` Overrides the behavior of the connector property Yes No
522
+ ``iceberg.enable-parquet-dereference-pushdown `` in the current session.
523
+ ===================================================== ======================================================================= =================== ==================
513
524
514
525
Caching Support
515
526
---------------
@@ -542,6 +553,11 @@ Property Name Description
542
553
this size will not be cached.
543
554
==================================================== ============================================================= ============
544
555
556
+ Presto C++ Support
557
+ ~~~~~~~~~~~~~~~~~~
558
+
559
+ Manifest file caching is supported in Presto C++.
560
+
545
561
Alluxio Data Cache
546
562
^^^^^^^^^^^^^^^^^^
547
563
@@ -565,6 +581,11 @@ JMX queries to get the metrics and verify the cache usage::
565
581
566
582
SHOW TABLES FROM jmx.current like '%alluxio%';
567
583
584
+ Presto C++ Support
585
+ ~~~~~~~~~~~~~~~~~~
586
+
587
+ Alluxio data caching is applicable for Presto Java. Presto C++ supports Async data cache. See :ref: `async_data_caching_and_prefetching `.
588
+
568
589
File And Stripe Footer Cache
569
590
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
570
591
@@ -596,6 +617,11 @@ JMX queries to get the metrics and verify the cache usage::
596
617
597
618
SELECT * FROM jmx.current."com.facebook.presto.hive:name=iceberg_parquetmetadata,type=cachestatsmbean";
598
619
620
+ Presto C++ Support
621
+ ~~~~~~~~~~~~~~~~~~
622
+
623
+ File and stripe footer cache is not applicable for Presto C++.
624
+
599
625
Metastore Cache
600
626
^^^^^^^^^^^^^^^
601
627
@@ -635,6 +661,11 @@ as part of a SQL query by including them in your SELECT statement.
635
661
----------------------------------+------------
636
662
2 | 3
637
663
664
+ Presto C++ Support
665
+ ^^^^^^^^^^^^^^^^^^
666
+
667
+ All above extra hidden metadata columns are supported in Presto C++.
668
+
638
669
Extra Hidden Metadata Tables
639
670
----------------------------
640
671
@@ -815,6 +846,10 @@ example uses the earliest snapshot ID: ``2423571386296047175``
815
846
testBranch | BRANCH | 3374797416068698476 | NULL | NULL | NULL
816
847
testTag | TAG | 4686954189838128572 | 10 | NULL | NULL
817
848
849
+ Presto C++ Support
850
+ ^^^^^^^^^^^^^^^^^^
851
+
852
+ All above extra hidden metadata tables are supported in Presto C++.
818
853
819
854
Procedures
820
855
----------
@@ -1098,9 +1133,54 @@ Examples:
1098
1133
1099
1134
CALL iceberg.system.set_table_property('schema_name', 'table_name', 'commit.retry.num-retries', '10');
1100
1135
1136
+ Presto C++ Support
1137
+ ^^^^^^^^^^^^^^^^^^
1138
+
1139
+ All above procedures are supported in Presto C++.
1140
+
1101
1141
SQL Support
1102
1142
-----------
1103
1143
1144
+ SQL Support Summary for Presto Java and Presto C++:
1145
+
1146
+ ============================== ============= ============ ============================================================================
1147
+ SQL Operation Presto Java Presto C++ Comments
1148
+ ============================== ============= ============ ============================================================================
1149
+ ``CREATE SCHEMA `` Yes Yes
1150
+
1151
+ ``CREATE TABLE `` Yes Yes
1152
+
1153
+ ``CREATE VIEW `` Yes Yes
1154
+
1155
+ ``INSERT INTO `` Yes No
1156
+
1157
+ ``CREATE TABLE AS SELECT `` Yes No
1158
+
1159
+ ``SELECT `` Yes Yes Read is supported in Presto C++ including those with positional delete files.
1160
+
1161
+ ``ALTER TABLE `` Yes Yes
1162
+
1163
+ ``ALTER VIEW `` Yes Yes
1164
+
1165
+ ``TRUNCATE `` Yes Yes
1166
+
1167
+ ``DELETE `` Yes No
1168
+
1169
+ ``DROP TABLE `` Yes Yes
1170
+
1171
+ ``DROP VIEW `` Yes Yes
1172
+
1173
+ ``DROP SCHEMA `` Yes Yes
1174
+
1175
+ ``SHOW CREATE TABLE `` Yes Yes
1176
+
1177
+ ``SHOW COLUMNS `` Yes Yes
1178
+
1179
+ ``DESCRIBE `` Yes Yes
1180
+
1181
+ ``UPDATE `` Yes No
1182
+ ============================== ============= ============ ============================================================================
1183
+
1104
1184
The Iceberg connector supports querying and manipulating Iceberg tables and schemas
1105
1185
(databases). Here are some examples of the SQL operations supported by Presto:
1106
1186
@@ -1237,6 +1317,11 @@ Transform Name Source Types
1237
1317
``Hour `` ``timestamp ``
1238
1318
===================== =======================================================================
1239
1319
1320
+ Presto C++ Support
1321
+ ~~~~~~~~~~~~~~~~~~
1322
+
1323
+ Read from the tables with Partition column transform is supported in Presto C++.
1324
+
1240
1325
CREATE VIEW
1241
1326
^^^^^^^^^^^
1242
1327
@@ -1558,13 +1643,23 @@ schema evolution, such as adding, dropping, and renaming columns. With schema
1558
1643
evolution, users can evolve a table schema with SQL after enabling the Presto
1559
1644
Iceberg connector.
1560
1645
1646
+ Presto C++ Support
1647
+ ^^^^^^^^^^^^^^^^^^
1648
+
1649
+ Schema Evolution is supported in Presto C++.
1650
+
1561
1651
Parquet Writer Version
1562
1652
----------------------
1563
1653
1564
1654
Presto now supports Parquet writer versions V1 and V2 for the Iceberg catalog.
1565
1655
It can be toggled using the session property ``parquet_writer_version `` and the config property ``hive.parquet.writer.version ``.
1566
1656
Valid values for these properties are ``PARQUET_1_0 `` and ``PARQUET_2_0 ``. Default is ``PARQUET_1_0 ``.
1567
1657
1658
+ Presto C++ Support
1659
+ ^^^^^^^^^^^^^^^^^^
1660
+
1661
+ Presto C++ supports Parquet writer versions V1.
1662
+
1568
1663
Example Queries
1569
1664
^^^^^^^^^^^^^^^
1570
1665
@@ -1871,6 +1966,11 @@ Query Iceberg table by specifying the tag name:
1871
1966
20 | canada | 2 | comment
1872
1967
(3 rows)
1873
1968
1969
+ Presto C++ Support
1970
+ ^^^^^^^^^^^^^^^^^^
1971
+
1972
+ Time Travel is supported in Presto C++.
1973
+
1874
1974
Type mapping
1875
1975
------------
1876
1976
0 commit comments