58 inline static Entry<std::string> kFormatVersion{
"format-version",
""};
60 inline static Entry<std::string> kUuid{
"uuid",
""};
62 inline static Entry<std::string> kSnapshotCount{
"snapshot-count",
""};
64 inline static Entry<std::string> kCurrentSnapshotSummary{
"current-snapshot-summary",
67 inline static Entry<std::string> kCurrentSnapshotId{
"current-snapshot-id",
""};
69 inline static Entry<std::string> kCurrentSnapshotTimestamp{
70 "current-snapshot-timestamp-ms",
""};
72 inline static Entry<std::string> kCurrentSchema{
"current-schema",
""};
75 inline static Entry<std::string> kDefaultPartitionSpec{
"default-partition-spec",
""};
78 inline static Entry<std::string> kDefaultSortOrder{
"default-sort-order",
""};
82 inline static Entry<int32_t> kCommitNumRetries{
"commit.retry.num-retries", 4};
83 inline static Entry<int32_t> kCommitMinRetryWaitMs{
"commit.retry.min-wait-ms", 100};
84 inline static Entry<int32_t> kCommitMaxRetryWaitMs{
"commit.retry.max-wait-ms",
86 inline static Entry<int32_t> kCommitTotalRetryTimeMs{
"commit.retry.total-timeout-ms",
88 inline static Entry<int32_t> kCommitNumStatusChecks{
"commit.status-check.num-retries",
90 inline static Entry<int64_t> kCommitStatusChecksMinWaitMs{
91 "commit.status-check.min-wait-ms", int64_t{1000}};
92 inline static Entry<int64_t> kCommitStatusChecksMaxWaitMs{
93 "commit.status-check.max-wait-ms", int64_t{60 * 1000}};
94 inline static Entry<int64_t> kCommitStatusChecksTotalWaitMs{
95 "commit.status-check.total-timeout-ms", int64_t{30 * 60 * 1000}};
99 inline static Entry<int64_t> kManifestTargetSizeBytes{
100 "commit.manifest.target-size-bytes", int64_t{8 * 1024 * 1024}};
101 inline static Entry<int32_t> kManifestMinMergeCount{
102 "commit.manifest.min-count-to-merge", 100};
103 inline static Entry<bool> kManifestMergeEnabled{
"commit.manifest-merge.enabled",
true};
107 inline static Entry<std::string> kDefaultFileFormat{
"write.format.default",
"parquet"};
108 inline static Entry<std::string> kDeleteDefaultFileFormat{
"write.delete.format.default",
113 inline static Entry<int32_t> kParquetRowGroupSizeBytes{
114 "write.parquet.row-group-size-bytes", 128 * 1024 * 1024};
115 inline static Entry<int32_t> kDeleteParquetRowGroupSizeBytes{
116 "write.delete.parquet.row-group-size-bytes", 128 * 1024 * 1024};
117 inline static Entry<int32_t> kParquetPageSizeBytes{
"write.parquet.page-size-bytes",
119 inline static Entry<int32_t> kDeleteParquetPageSizeBytes{
120 "write.delete.parquet.page-size-bytes", 1024 * 1024};
121 inline static Entry<int32_t> kParquetPageRowLimit{
"write.parquet.page-row-limit",
123 inline static Entry<int32_t> kDeleteParquetPageRowLimit{
124 "write.delete.parquet.page-row-limit", 20'000};
125 inline static Entry<int32_t> kParquetDictSizeBytes{
"write.parquet.dict-size-bytes",
127 inline static Entry<int32_t> kDeleteParquetDictSizeBytes{
128 "write.delete.parquet.dict-size-bytes", 2 * 1024 * 1024};
129 inline static Entry<std::string> kParquetCompression{
"write.parquet.compression-codec",
131 inline static Entry<std::string> kDeleteParquetCompression{
132 "write.delete.parquet.compression-codec",
"zstd"};
133 inline static Entry<std::string> kParquetCompressionLevel{
134 "write.parquet.compression-level",
""};
135 inline static Entry<std::string> kDeleteParquetCompressionLevel{
136 "write.delete.parquet.compression-level",
""};
137 inline static Entry<int32_t> kParquetRowGroupCheckMinRecordCount{
138 "write.parquet.row-group-check-min-record-count", 100};
139 inline static Entry<int32_t> kDeleteParquetRowGroupCheckMinRecordCount{
140 "write.delete.parquet.row-group-check-min-record-count", 100};
141 inline static Entry<int32_t> kParquetRowGroupCheckMaxRecordCount{
142 "write.parquet.row-group-check-max-record-count", 10'000};
143 inline static Entry<int32_t> kDeleteParquetRowGroupCheckMaxRecordCount{
144 "write.delete.parquet.row-group-check-max-record-count", 10'000};
145 inline static Entry<int32_t> kParquetBloomFilterMaxBytes{
146 "write.parquet.bloom-filter-max-bytes", 1024 * 1024};
147 inline static std::string_view kParquetBloomFilterColumnFppPrefix{
148 "write.parquet.bloom-filter-fpp.column."};
149 inline static std::string_view kParquetBloomFilterColumnEnabledPrefix{
150 "write.parquet.bloom-filter-enabled.column."};
151 inline static std::string_view kParquetColumnStatsEnabledPrefix{
152 "write.parquet.stats-enabled.column."};
155 inline static Entry<std::string> kAvroCompression{
"write.avro.compression-codec",
157 inline static Entry<std::string> kDeleteAvroCompression{
158 "write.delete.avro.compression-codec",
"gzip"};
159 inline static Entry<std::string> kAvroCompressionLevel{
"write.avro.compression-level",
161 inline static Entry<std::string> kDeleteAvroCompressionLevel{
162 "write.delete.avro.compression-level",
""};
165 inline static Entry<int64_t> kOrcStripeSizeBytes{
"write.orc.stripe-size-bytes",
166 int64_t{64} * 1024 * 1024};
167 inline static Entry<std::string> kOrcBloomFilterColumns{
168 "write.orc.bloom.filter.columns",
""};
169 inline static Entry<double> kOrcBloomFilterFpp{
"write.orc.bloom.filter.fpp", 0.05};
170 inline static Entry<int64_t> kDeleteOrcStripeSizeBytes{
171 "write.delete.orc.stripe-size-bytes", int64_t{64} * 1024 * 1024};
172 inline static Entry<int64_t> kOrcBlockSizeBytes{
"write.orc.block-size-bytes",
173 int64_t{256} * 1024 * 1024};
174 inline static Entry<int64_t> kDeleteOrcBlockSizeBytes{
175 "write.delete.orc.block-size-bytes", int64_t{256} * 1024 * 1024};
176 inline static Entry<int32_t> kOrcWriteBatchSize{
"write.orc.vectorized.batch-size",
178 inline static Entry<int32_t> kDeleteOrcWriteBatchSize{
179 "write.delete.orc.vectorized.batch-size", 1024};
180 inline static Entry<std::string> kOrcCompression{
"write.orc.compression-codec",
"zlib"};
181 inline static Entry<std::string> kDeleteOrcCompression{
182 "write.delete.orc.compression-codec",
"zlib"};
183 inline static Entry<std::string> kOrcCompressionStrategy{
184 "write.orc.compression-strategy",
"speed"};
185 inline static Entry<std::string> kDeleteOrcCompressionStrategy{
186 "write.delete.orc.compression-strategy",
"speed"};
190 inline static Entry<int64_t> kSplitSize{
"read.split.target-size",
191 int64_t{128} * 1024 * 1024};
192 inline static Entry<int64_t> kMetadataSplitSize{
"read.split.metadata-target-size",
193 int64_t{32} * 1024 * 1024};
194 inline static Entry<int32_t> kSplitLookback{
"read.split.planning-lookback", 10};
195 inline static Entry<int64_t> kSplitOpenFileCost{
"read.split.open-file-cost",
196 int64_t{4} * 1024 * 1024};
197 inline static Entry<bool> kAdaptiveSplitSizeEnabled{
"read.split.adaptive-size.enabled",
199 inline static Entry<bool> kParquetVectorizationEnabled{
200 "read.parquet.vectorization.enabled",
true};
201 inline static Entry<int32_t> kParquetBatchSize{
"read.parquet.vectorization.batch-size",
203 inline static Entry<bool> kOrcVectorizationEnabled{
"read.orc.vectorization.enabled",
205 inline static Entry<int32_t> kOrcBatchSize{
"read.orc.vectorization.batch-size", 5000};
206 inline static Entry<std::string> kDataPlanningMode{
"read.data-planning-mode",
"auto"};
207 inline static Entry<std::string> kDeletePlanningMode{
"read.delete-planning-mode",
212 inline static Entry<bool> kObjectStoreEnabled{
"write.object-storage.enabled",
false};
215 inline static Entry<bool> kWriteObjectStorePartitionedPaths{
216 "write.object-storage.partitioned-paths",
true};
220 inline static Entry<std::string> kWriteDataLocation{
"write.data.path",
""};
224 inline static Entry<std::string> kWriteMetadataLocation{
"write.metadata.path",
""};
225 inline static Entry<int32_t> kWritePartitionSummaryLimit{
226 "write.summary.partition-limit", 0};
227 inline static Entry<std::string> kMetadataCompression{
228 "write.metadata.compression-codec",
"none"};
229 inline static Entry<int32_t> kMetadataPreviousVersionsMax{
230 "write.metadata.previous-versions-max", 100};
232 inline static Entry<bool> kMetadataDeleteAfterCommitEnabled{
233 "write.metadata.delete-after-commit.enabled",
false};
234 inline static Entry<int32_t> kMetricsMaxInferredColumnDefaults{
235 "write.metadata.metrics.max-inferred-column-defaults", 100};
236 inline static constexpr std::string_view kMetricModeColumnConfPrefix =
237 "write.metadata.metrics.column.";
238 inline static Entry<std::string> kDefaultWriteMetricsMode{
239 "write.metadata.metrics.default",
"truncate(16)"};
241 inline static std::string_view kDefaultNameMapping{
"schema.name-mapping.default"};
243 inline static Entry<bool> kWriteAuditPublishEnabled{
"write.wap.enabled",
false};
244 inline static Entry<int64_t> kWriteTargetFileSizeBytes{
245 "write.target-file-size-bytes", int64_t{512} * 1024 * 1024};
246 inline static Entry<int64_t> kDeleteTargetFileSizeBytes{
247 "write.delete.target-file-size-bytes", int64_t{64} * 1024 * 1024};
249 inline static Entry<bool> kSnapshotIdInheritanceEnabled{
250 "compatibility.snapshot-id-inheritance.enabled",
false};
254 inline static Entry<bool> kGcEnabled{
"gc.enabled",
true};
255 inline static Entry<int64_t> kMaxSnapshotAgeMs{
256 "history.expire.max-snapshot-age-ms", int64_t{5} * 24 * 60 * 60 * 1000};
257 inline static Entry<int32_t> kMinSnapshotsToKeep{
"history.expire.min-snapshots-to-keep",
259 inline static Entry<int64_t> kMaxRefAgeMs{
"history.expire.max-ref-age-ms",
260 (std::numeric_limits<int64_t>::max)()};
264 inline static Entry<std::string> kDeleteGranularity{
"write.delete.granularity",
266 inline static Entry<std::string> kDeleteIsolationLevel{
"write.delete.isolation-level",
268 inline static Entry<std::string> kDeleteMode{
"write.delete.mode",
"copy-on-write"};
270 inline static Entry<std::string> kUpdateIsolationLevel{
"write.update.isolation-level",
272 inline static Entry<std::string> kUpdateMode{
"write.update.mode",
"copy-on-write"};
274 inline static Entry<std::string> kMergeIsolationLevel{
"write.merge.isolation-level",
276 inline static Entry<std::string> kMergeMode{
"write.merge.mode",
"copy-on-write"};
278 inline static Entry<bool> kUpsertEnabled{
"write.upsert.enabled",
false};
282 inline static Entry<std::string> kEncryptionTableKey{
"encryption.key-id",
""};
283 inline static Entry<int32_t> kEncryptionDekLength{
"encryption.data-key-length", 16};
304 return configs_ == other.configs_;