@@ -39,10 +39,21 @@ public class HoodieStorageConfig extends DefaultHoodieConfig {
39
39
public static final String DEFAULT_PARQUET_BLOCK_SIZE_BYTES = DEFAULT_PARQUET_FILE_MAX_BYTES ;
40
40
public static final String PARQUET_PAGE_SIZE_BYTES = "hoodie.parquet.page.size" ;
41
41
public static final String DEFAULT_PARQUET_PAGE_SIZE_BYTES = String .valueOf (1 * 1024 * 1024 );
42
+
42
43
public static final String HFILE_FILE_MAX_BYTES = "hoodie.hfile.max.file.size" ;
43
44
public static final String HFILE_BLOCK_SIZE_BYTES = "hoodie.hfile.block.size" ;
44
45
public static final String DEFAULT_HFILE_BLOCK_SIZE_BYTES = String .valueOf (1 * 1024 * 1024 );
45
46
public static final String DEFAULT_HFILE_FILE_MAX_BYTES = String .valueOf (120 * 1024 * 1024 );
47
+
48
+ public static final String ORC_FILE_MAX_BYTES = "hoodie.orc.max.file.size" ;
49
+ public static final String DEFAULT_ORC_FILE_MAX_BYTES = String .valueOf (120 * 1024 * 1024 );
50
+ // size of the memory buffer in bytes for writing
51
+ public static final String ORC_STRIPE_SIZE = "hoodie.orc.stripe.size" ;
52
+ public static final String DEFAULT_ORC_STRIPE_SIZE = String .valueOf (64 * 1024 * 1024 );
53
+ // file system block size
54
+ public static final String ORC_BLOCK_SIZE = "hoodie.orc.block.size" ;
55
+ public static final String DEFAULT_ORC_BLOCK_SIZE = DEFAULT_ORC_FILE_MAX_BYTES ;
56
+
46
57
// used to size log files
47
58
public static final String LOGFILE_SIZE_MAX_BYTES = "hoodie.logfile.max.size" ;
48
59
public static final String DEFAULT_LOGFILE_SIZE_MAX_BYTES = String .valueOf (1024 * 1024 * 1024 ); // 1 GB
@@ -54,9 +65,11 @@ public class HoodieStorageConfig extends DefaultHoodieConfig {
54
65
public static final String DEFAULT_STREAM_COMPRESSION_RATIO = String .valueOf (0.1 );
55
66
public static final String PARQUET_COMPRESSION_CODEC = "hoodie.parquet.compression.codec" ;
56
67
public static final String HFILE_COMPRESSION_ALGORITHM = "hoodie.hfile.compression.algorithm" ;
68
+ public static final String ORC_COMPRESSION_CODEC = "hoodie.orc.compression.codec" ;
57
69
// Default compression codec for parquet
58
70
public static final String DEFAULT_PARQUET_COMPRESSION_CODEC = "gzip" ;
59
71
public static final String DEFAULT_HFILE_COMPRESSION_ALGORITHM = "GZ" ;
72
+ public static final String DEFAULT_ORC_COMPRESSION_CODEC = "ZLIB" ;
60
73
public static final String LOGFILE_TO_PARQUET_COMPRESSION_RATIO = "hoodie.logfile.to.parquet.compression.ratio" ;
61
74
// Default compression ratio for log file to parquet, general 3x
62
75
public static final String DEFAULT_LOGFILE_TO_PARQUET_COMPRESSION_RATIO = String .valueOf (0.35 );
@@ -140,6 +153,26 @@ public Builder logFileToParquetCompressionRatio(double logFileToParquetCompressi
140
153
return this ;
141
154
}
142
155
156
+ public Builder orcMaxFileSize (long maxFileSize ) {
157
+ props .setProperty (ORC_FILE_MAX_BYTES , String .valueOf (maxFileSize ));
158
+ return this ;
159
+ }
160
+
161
+ public Builder orcStripeSize (int orcStripeSize ) {
162
+ props .setProperty (ORC_STRIPE_SIZE , String .valueOf (orcStripeSize ));
163
+ return this ;
164
+ }
165
+
166
+ public Builder orcBlockSize (int orcBlockSize ) {
167
+ props .setProperty (ORC_BLOCK_SIZE , String .valueOf (orcBlockSize ));
168
+ return this ;
169
+ }
170
+
171
+ public Builder orcCompressionCodec (String orcCompressionCodec ) {
172
+ props .setProperty (ORC_COMPRESSION_CODEC , orcCompressionCodec );
173
+ return this ;
174
+ }
175
+
143
176
public HoodieStorageConfig build () {
144
177
HoodieStorageConfig config = new HoodieStorageConfig (props );
145
178
setDefaultOnCondition (props , !props .containsKey (PARQUET_FILE_MAX_BYTES ), PARQUET_FILE_MAX_BYTES ,
@@ -166,6 +199,15 @@ public HoodieStorageConfig build() {
166
199
setDefaultOnCondition (props , !props .containsKey (HFILE_FILE_MAX_BYTES ), HFILE_FILE_MAX_BYTES ,
167
200
DEFAULT_HFILE_FILE_MAX_BYTES );
168
201
202
+ setDefaultOnCondition (props , !props .containsKey (ORC_FILE_MAX_BYTES ), ORC_FILE_MAX_BYTES ,
203
+ DEFAULT_ORC_FILE_MAX_BYTES );
204
+ setDefaultOnCondition (props , !props .containsKey (ORC_STRIPE_SIZE ), ORC_STRIPE_SIZE ,
205
+ DEFAULT_ORC_STRIPE_SIZE );
206
+ setDefaultOnCondition (props , !props .containsKey (ORC_BLOCK_SIZE ), ORC_BLOCK_SIZE ,
207
+ DEFAULT_ORC_BLOCK_SIZE );
208
+ setDefaultOnCondition (props , !props .containsKey (ORC_COMPRESSION_CODEC ), ORC_COMPRESSION_CODEC ,
209
+ DEFAULT_ORC_COMPRESSION_CODEC );
210
+
169
211
return config ;
170
212
}
171
213
}
0 commit comments