@@ -525,6 +525,61 @@ message Logging {
525
525
IamAuth auth = 2 ;
526
526
}
527
527
528
+ // TIcebergWarehouse represents settings specific to iceberg warehouse
529
+ message IcebergWarehouse {
530
+ // Iceberg data located in a S3 storage
531
+ message S3 {
532
+ // Bucket in a storage
533
+ // e.g., s3a://iceberg-bucket
534
+ optional string bucket = 1 [(Ydb.length ).le = 1024 ];
535
+
536
+ // Path in a bucket
537
+ // e.g., /storage
538
+ optional string path = 2 [(Ydb.length ).le = 1024 ];
539
+ }
540
+
541
+ oneof payload {
542
+ S3 s3 = 1 ;
543
+ }
544
+ }
545
+
546
+ // TIcebergCatalog represents settings specific to iceberg catalog
547
+ message IcebergCatalog {
548
+ // Hadoop Iceberg Catalog which is built on top of a storage
549
+ message Hadoop {
550
+ // Directory where iceberg tables are located. In case of a S3 storage the location
551
+ // will be "S3.uri + S3.path + Hadoop.path", e.g., if "Hadoop.path" is equal "warehouse" then
552
+ // the final location will be "s3a://iceberg-bucket/storage/warehouse"
553
+ optional string directory = 1 [(Ydb.length ).le = 1024 ];
554
+ }
555
+
556
+ // Hive Iceberg Catalog which is based on a Hive Metastore
557
+ message HiveMetastore {
558
+ // Location of a hive metastore
559
+ // e.g., thrift://host:9083/
560
+ optional string uri = 1 [(Ydb.length ).le = 1024 ];
561
+
562
+ // Hive metastore database which holds iceberg namespace
563
+ optional string database_name = 2 [(Ydb.length ).le = 1024 ];
564
+ }
565
+
566
+ oneof payload {
567
+ Hadoop hadoop = 1 ;
568
+ HiveMetastore hive_metastore = 2 ;
569
+ }
570
+ }
571
+
572
+ message Iceberg {
573
+ // credentials to access a warehouse
574
+ IamAuth warehouse_auth = 2 ;
575
+
576
+ // warehouse config
577
+ IcebergWarehouse warehouse = 3 ;
578
+
579
+ // catalog config
580
+ IcebergCatalog catalog = 4 ;
581
+ }
582
+
528
583
message ConnectionSetting {
529
584
enum ConnectionType {
530
585
CONNECTION_TYPE_UNSPECIFIED = 0 ;
@@ -537,6 +592,7 @@ message ConnectionSetting {
537
592
GREENPLUM_CLUSTER = 7 ;
538
593
MYSQL_CLUSTER = 8 ;
539
594
LOGGING = 9 ;
595
+ ICEBERG = 10 ;
540
596
}
541
597
542
598
oneof connection {
@@ -549,6 +605,7 @@ message ConnectionSetting {
549
605
GreenplumCluster greenplum_cluster = 7 ;
550
606
MySQLCluster mysql_cluster = 8 ;
551
607
Logging logging = 9 ;
608
+ Iceberg iceberg = 10 ;
552
609
}
553
610
}
554
611
0 commit comments