ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

dremio 内置support key 说明

2021-09-05 01:31:27  阅读:402  来源: 互联网

标签:dremio planner support public static key new final BooleanValidator


目前官方文档不是很全,好多support key 是没有包含的,以下是从官方代码支持的
可以方便进行dremio 的管理(比如一些官方暂时没有说明的key。。。)

参考

代码路径: sabot/kernel/src/main/java/com/dremio/exec/planner/physical/PlannerSettings.java

  • kernel
 
@Options
public class PlannerSettings implements Context{
  static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(PlannerSettings.class);
  private int numEndPoints = 0;
  private boolean useDefaultCosting = false; // True: use default Calcite costing, False: use Dremio costing
  private boolean forceSingleMode;
  private long minimumSampleSize = 0;
  // should distribution traits be pulled off during planning
  private boolean pullDistributionTrait = true;
 
  public static final int MAX_RECURSION_STACK_DEPTH = 100;
  public static final int MAX_BROADCAST_THRESHOLD = Integer.MAX_VALUE;
  public static final int DEFAULT_IDENTIFIER_MAX_LENGTH = 1024;
 
  public static final double DEFAULT_FILTER_MIN_SELECTIVITY_ESTIMATE_FACTOR_WITH_STATISTICS = 0.005d;
  public static final double DEFAULT_FILTER_MIN_SELECTIVITY_ESTIMATE_FACTOR = 0.5d;
  public static final double DEFAULT_FILTER_MAX_SELECTIVITY_ESTIMATE_FACTOR = 1.0d;
  // default off heap memory for planning (256M)
  private static final long DEFAULT_MAX_OFF_HEAP_ALLOCATION_IN_BYTES = 256 * 1024 * 1024;
  private static final long DEFAULT_BROADCAST_THRESHOLD = 10000000;
  private static final long DEFAULT_CELL_COUNT_THRESHOLD = 10 * DEFAULT_BROADCAST_THRESHOLD; // 10 times DEFAULT_BROADCAST_THRESHOLD
  public static final LongValidator PLANNER_MEMORY_RESERVATION = new RangeLongValidator("planner.reservation_bytes",
    0L, Long.MAX_VALUE, 0L);
  public static final LongValidator PLANNER_MEMORY_LIMIT = new RangeLongValidator("planner.memory_limit",
    0L, Long.MAX_VALUE, DEFAULT_MAX_OFF_HEAP_ALLOCATION_IN_BYTES);
  public static final LongValidator MAX_METADATA_CALL_COUNT =
      new LongValidator("planner.max_metadata_call_count", 10_000_000L);
 
  public static final DoubleValidator MUX_USE_THRESHOLD = new RangeDoubleValidator("planner.mux.use_threshold", 0, Double.MAX_VALUE, 1200.0d);
  public static final BooleanValidator FLATTEN_FILTER = new BooleanValidator("planner.enable_filter_flatten_pushdown", false /** disabled until DX-7987 is resolved **/);
  public static final BooleanValidator CONSTANT_FOLDING = new BooleanValidator("planner.enable_constant_folding", true);
  public static final BooleanValidator EXCHANGE = new BooleanValidator("planner.disable_exchanges", false);
  public static final BooleanValidator HASHAGG = new BooleanValidator("planner.enable_hashagg", true);
  public static final BooleanValidator STREAMAGG = new BooleanValidator("planner.enable_streamagg", true);
  public static final BooleanValidator HASHJOIN = new BooleanValidator("planner.enable_hashjoin", true);
  public static final BooleanValidator MERGEJOIN = new BooleanValidator("planner.enable_mergejoin", false);
  public static final BooleanValidator NESTEDLOOPJOIN = new BooleanValidator("planner.enable_nestedloopjoin", true);
  public static final BooleanValidator MULTIPHASE = new BooleanValidator("planner.enable_multiphase_agg", true);
  public static final BooleanValidator BROADCAST = new BooleanValidator("planner.enable_broadcast_join", true);
  public static final LongValidator BROADCAST_MIN_THRESHOLD = new PositiveLongValidator("planner.broadcast_min_threshold", MAX_BROADCAST_THRESHOLD, 500000);
  public static final LongValidator BROADCAST_THRESHOLD = new PositiveLongValidator("planner.broadcast_threshold", MAX_BROADCAST_THRESHOLD, DEFAULT_BROADCAST_THRESHOLD);
  public static final LongValidator BROADCAST_CELL_COUNT_THRESHOLD = new PositiveLongValidator("planner.broadcast_cellcount_threshold", MAX_BROADCAST_THRESHOLD, DEFAULT_CELL_COUNT_THRESHOLD);
  public static final DoubleValidator BROADCAST_FACTOR = new RangeDoubleValidator("planner.broadcast_factor", 0, Double.MAX_VALUE, 2.0d);
  public static final DoubleValidator NESTEDLOOPJOIN_FACTOR = new RangeDoubleValidator("planner.nestedloopjoin_factor", 0, Double.MAX_VALUE, 100.0d);
  public static final LongValidator NESTEDLOOPJOIN_MAX_CONDITION_NODES = new PositiveLongValidator("planner.nestedloopjoin_max_condition_nodes", Long.MAX_VALUE, 120);
  public static final BooleanValidator NLJOIN_FOR_SCALAR = new BooleanValidator("planner.enable_nljoin_for_scalar_only", false);
  public static final DoubleValidator JOIN_ROW_COUNT_ESTIMATE_FACTOR = new RangeDoubleValidator("planner.join.row_count_estimate_factor", 0, Double.MAX_VALUE, 1.0d);
  public static final BooleanValidator MUX_EXCHANGE = new BooleanValidator("planner.enable_mux_exchange", true);
  public static final BooleanValidator DEMUX_EXCHANGE = new BooleanValidator("planner.enable_demux_exchange", false);
  public static final LongValidator PARTITION_SENDER_THREADS_FACTOR = new LongValidator("planner.partitioner_sender_threads_factor", 2);
  public static final LongValidator PARTITION_SENDER_MAX_THREADS = new LongValidator("planner.partitioner_sender_max_threads", 8);
  public static final LongValidator PARTITION_SENDER_SET_THREADS = new LongValidator("planner.partitioner_sender_set_threads", -1);
  public static final BooleanValidator PRODUCER_CONSUMER = new BooleanValidator("planner.add_producer_consumer", false);
  public static final LongValidator PRODUCER_CONSUMER_QUEUE_SIZE = new LongValidator("planner.producer_consumer_queue_size", 10);
  public static final BooleanValidator HASH_SINGLE_KEY = new BooleanValidator("planner.enable_hash_single_key", false);
  public static final BooleanValidator HASH_JOIN_SWAP = new BooleanValidator("planner.enable_hashjoin_swap", true);
  public static final RangeDoubleValidator HASH_JOIN_SWAP_MARGIN_FACTOR = new RangeDoubleValidator("planner.join.hash_join_swap_margin_factor", 0, 100, 10d);
  public static final LongValidator STREAM_AGG_MAX_GROUP = new PositiveLongValidator("planner.streamagg.max_group_key", Long.MAX_VALUE, 64);
  public static final BooleanValidator STREAM_AGG_WITH_GROUPS = new BooleanValidator("planner.streamagg.allow_grouping", false);
  public static final String ENABLE_DECIMAL_DATA_TYPE_KEY = "planner.enable_decimal_data_type";
  public static final LongValidator HEP_PLANNER_MATCH_LIMIT = new PositiveLongValidator("planner.hep_match_limit", Integer.MAX_VALUE, Integer.MAX_VALUE);
  public static final BooleanValidator TRANSITIVE_FILTER_JOIN_PUSHDOWN = new BooleanValidator("planner.filter.transitive_pushdown", true);
  public static final BooleanValidator TRANSITIVE_FILTER_NOT_NULL_EXPR_PUSHDOWN = new BooleanValidator("planner.filter.transitive_pushdown_not_null_expr", false); // Until DX-26452 is fixes
  public static final BooleanValidator ENABLE_RUNTIME_FILTER = new BooleanValidator("planner.filter.runtime_filter", true);
  public static final BooleanValidator ENABLE_TRANSPOSE_PROJECT_FILTER_LOGICAL = new BooleanValidator("planner.experimental.tpf_logical", false);
  public static final BooleanValidator ENABLE_PROJECT_CLEANUP_LOGICAL = new BooleanValidator("planner.experimental.pclean_logical", false);
  public static final BooleanValidator ENABLE_CROSS_JOIN = new BooleanValidator("planner.enable_cross_join", true);
  public static final BooleanValidator ENABLE_DECIMAL_DATA_TYPE = new BooleanValidator
    (ENABLE_DECIMAL_DATA_TYPE_KEY, true);
  public static final BooleanValidator HEP_OPT = new BooleanValidator("planner.enable_hep_opt", true);
  public static final BooleanValidator ENABLE_PARTITION_PRUNING = new BooleanValidator("planner.enable_partition_pruning", true);
  public static final String UNIONALL_DISTRIBUTE_KEY = "planner.enable_unionall_distribute";
  public static final BooleanValidator UNIONALL_DISTRIBUTE = new BooleanValidator(UNIONALL_DISTRIBUTE_KEY, true);
  public static final LongValidator PLANNING_MAX_MILLIS = new LongValidator("planner.timeout_per_phase_ms", 60_000);
  public static final BooleanValidator RELATIONAL_PLANNING = new BooleanValidator("planner.enable_relational_planning", true);
  public static final BooleanValidator FULL_NESTED_SCHEMA_SUPPORT = new BooleanValidator("planner.enable_full_nested_schema", true);
  public static final BooleanValidator COMPLEX_TYPE_FILTER_PUSHDOWN = new BooleanValidator("planner.complex_type_filter_pushdown", true);
 
  public static final BooleanValidator ENABLE_LEAF_LIMITS = new BooleanValidator("planner.leaf_limit_enable", false);
  public static final RangeLongValidator LEAF_LIMIT_SIZE  = new RangeLongValidator("planner.leaf_limit_size", 1, Long.MAX_VALUE, 10000);
  public static final RangeLongValidator LEAF_LIMIT_MAX_WIDTH  = new RangeLongValidator("planner.leaf_limit_width", 1, Long.MAX_VALUE, 10);
 
  public static final BooleanValidator ENABLE_OUTPUT_LIMITS = new BooleanValidator("planner.output_limit_enable", false);
  public static final RangeLongValidator OUTPUT_LIMIT_SIZE  = new RangeLongValidator("planner.output_limit_size", 1, Long.MAX_VALUE, 1_000_000);
  public static final DoubleValidator COLUMN_UNIQUENESS_ESTIMATION_FACTOR = new RangeDoubleValidator("planner.column_uniqueness_estimation_factor", 0d, 1d, 0.1d);
 
  // number of records (per minor fragment) is truncated to at-least MIN_RECORDS_PER_FRAGMENT
  // if num of records for the fragment is greater than this.
  public static final Long MIN_RECORDS_PER_FRAGMENT  = 500L;
 
  public static final BooleanValidator VDS_AUTO_FIX = new BooleanValidator("validator.enable_vds_autofix", true);
 
  public static final BooleanValidator NLJ_PUSHDOWN = new BooleanValidator("planner.nlj.expression_pushdown", true);
 
  public static final BooleanValidator REDUCE_ALGEBRAIC_EXPRESSIONS = new BooleanValidator("planner.reduce_algebraic_expressions", false);
  public static final BooleanValidator FILTER_EXTRACT_CONJUNCTIONS = new BooleanValidator("planner.filter.extract_conjunctions", false);
 
  public static final BooleanValidator ENABlE_PROJCT_NLJ_MERGE = new BooleanValidator("planner.nlj.enable_project_merge", true);
 
  public static final String ENABLE_DECIMAL_V2_KEY = "planner" +
    ".enable_decimal_v2";
  public static final String ENABLE_VECTORIZED_PARQUET_DECIMAL_KEY = "planner" +
    ".enable_vectorized_parquet_decimal";
  public static final BooleanValidator ENABLE_DECIMAL_V2 = new AdminBooleanValidator
    (ENABLE_DECIMAL_V2_KEY, true);
  public static final BooleanValidator ENABLE_VECTORIZED_PARQUET_DECIMAL = new BooleanValidator
    (ENABLE_VECTORIZED_PARQUET_DECIMAL_KEY, true);
 
  public static final BooleanValidator ENABLE_PARQUET_IN_EXPRESSION_PUSH_DOWN =
          new BooleanValidator("planner.parquet.in_expression_push_down", true);
  public static final BooleanValidator ENABLE_PARQUET_MULTI_COLUMN_FILTER_PUSH_DOWN =
          new BooleanValidator("planner.parquet.multi_column_filter_push_down", true);
 
  public static final LongValidator MAX_NODES_PER_PLAN = new LongValidator("planner.max_nodes_per_plan", 25_000);
 
  public static final BooleanValidator ENABLE_ICEBERG_EXECUTION = new BooleanValidator("dremio.execution.v2", false);
  public static final BooleanValidator ENABLE_DELTALAKE = new BooleanValidator("dremio.deltalake.enabled", true);
  public static final LongValidator ICEBERG_MANIFEST_SCAN_RECORDS_PER_THREAD = new LongValidator("planner.iceberg.manifestscan.records_per_thread", 1000);
  public static final BooleanValidator UNLIMITED_SPLITS_SUPPORT = new BooleanValidator("dremio.execution.support_unlimited_splits", false);
 
  public static final BooleanValidator ENABLE_AGGRESSIVE_MEMORY_CALCULATION =
    new BooleanValidator("planner.memory.aggressive", false);
  public static final TypeValidators.LongValidator ADJUST_RESERVED_WHEN_AGGRESSIVE =
    new TypeValidators.LongValidator("planner.memory.adjust_aggressive_by_mb", 1024);
 
  /**
   * Policy regarding storing query results
   */
  public enum StoreQueryResultsPolicy {
    /**
     * Do not save query result
     */
    NO,
 
    /**
     * Save query results to the path designated by {@code QUERY_RESULTS_STORE_TABLE} option
     */
    DIRECT_PATH,
 
    /**
     * Save query results to the path designated by {@code QUERY_RESULTS_STORE_TABLE} option
     * appended with attempt id
     */
    PATH_AND_ATTEMPT_ID
  }
 
  public static final OptionValidator STORE_QUERY_RESULTS = new QueryLevelOptionValidation(
      new EnumValidator<>("planner.store_query_results", StoreQueryResultsPolicy.class, StoreQueryResultsPolicy.NO));
 
  public static final OptionValidator QUERY_RESULTS_STORE_TABLE = new QueryLevelOptionValidation(new StringValidator("planner.query_results_store_path", "null"));
 
  // Enable filter reduce expressions rule for tableau's 1=0 queries.
  public static final BooleanValidator ENABLE_REDUCE_PROJECT = new BooleanValidator("planner.enable_reduce_project", true);
  public static final BooleanValidator ENABLE_REDUCE_FILTER = new BooleanValidator("planner.enable_reduce_filter", true);
  public static final BooleanValidator ENABLE_REDUCE_CALC = new BooleanValidator("planner.enable_reduce_calc", true);
 
  // Filter reduce expression rules used in conjunction with transitive filter
  public static final BooleanValidator ENABLE_TRANSITIVE_REDUCE_PROJECT = new BooleanValidator("planner.enable_transitive_reduce_project", false);
  public static final BooleanValidator ENABLE_TRANSITIVE_REDUCE_FILTER = new BooleanValidator("planner.enable_transitive_reduce_filter", false);
  public static final BooleanValidator ENABLE_TRANSITIVE_REDUCE_CALC = new BooleanValidator("planner.enable_transitive_reduce_calc", false);
 
  public static final BooleanValidator ENABLE_TRIVIAL_SINGULAR = new BooleanValidator("planner.enable_trivial_singular", true);
 
  public static final BooleanValidator ENABLE_SORT_ROUND_ROBIN = new BooleanValidator("planner.enable_sort_round_robin", true);
  public static final BooleanValidator ENABLE_UNIONALL_ROUND_ROBIN = new BooleanValidator("planner.enable_union_all_round_robin", true);
 
  public static final RangeLongValidator IDENTIFIER_MAX_LENGTH =
      new RangeLongValidator("planner.identifier_max_length", 128 /* A minimum length is needed because option names are identifiers themselves */,
                              Integer.MAX_VALUE, DEFAULT_IDENTIFIER_MAX_LENGTH);
 
  public static final BooleanValidator ENABLE_GLOBAL_DICTIONARY = new BooleanValidator("planner.enable_global_dictionary", true);
 
  public static final DoubleValidator FLATTEN_EXPANSION_AMOUNT = new TypeValidators.RangeDoubleValidator("planner.flatten.expansion_size", 0, Double.MAX_VALUE, 10.0d);
 
  public static final LongValidator RING_COUNT = new TypeValidators.PowerOfTwoLongValidator("planner.ring_count", 4096, 64);
 
  public static final BooleanValidator WRITER_TEMP_FILE = new BooleanValidator("planner.writer_temp_file", false);
 
  /**
   * Controls whether to use the cached prepared statement handles more than once. Setting it to false will remove the
   * handle when it is used the first time before it expires. Setting it to true will reuse the handle as many times as
   * it can before it expires.
   */
  public static final BooleanValidator REUSE_PREPARE_HANDLES = new BooleanValidator("planner.reuse_prepare_statement_handles", false);
 
  public static final BooleanValidator VERBOSE_PROFILE = new BooleanValidator("planner.verbose_profile", false);
  public static final BooleanValidator USE_STATISTICS = new BooleanValidator("planner.use_statistics", false);
  public static final BooleanValidator USE_ROW_COUNT_STATISTICS = new BooleanValidator("planner.use_rowcount_statistics", false);
  public static final BooleanValidator VERBOSE_RULE_MATCH_LISTENER = new BooleanValidator("planner.verbose_rule_match_listener", false);
 
  public static final BooleanValidator INCLUDE_DATASET_PROFILE = new BooleanValidator("planner.include_dataset_profile", true);
 
  public static final BooleanValidator ENABLE_JOIN_OPTIMIZATION = new BooleanValidator("planner.enable_join_optimization", true);
 
  public static final BooleanValidator ENABLE_EXPERIMENTAL_BUSHY_JOIN_OPTIMIZER = new BooleanValidator("planner.experimental.enable_bushy_join_optimizer", false);
 
  public static final DoubleValidator FILTER_MIN_SELECTIVITY_ESTIMATE_FACTOR =
          new RangeDoubleValidator("planner.filter.min_selectivity_estimate_factor", 0.0, 1.0, DEFAULT_FILTER_MIN_SELECTIVITY_ESTIMATE_FACTOR);
  public static final DoubleValidator FILTER_MIN_SELECTIVITY_ESTIMATE_FACTOR_WITH_STATISTICS =
    new RangeDoubleValidator("planner.filter.min_selectivity_estimate_factor_with_statistics", 0.0, 1.0, DEFAULT_FILTER_MIN_SELECTIVITY_ESTIMATE_FACTOR_WITH_STATISTICS);
 
  public static final DoubleValidator FILTER_MAX_SELECTIVITY_ESTIMATE_FACTOR =
          new RangeDoubleValidator("planner.filter.max_selectivity_estimate_factor", 0.0, 1.0, DEFAULT_FILTER_MAX_SELECTIVITY_ESTIMATE_FACTOR);
 
  public static final BooleanValidator REMOVE_ROW_ADJUSTMENT = new BooleanValidator("planner.remove_rowcount_adjustment", true);
 
  public static final PositiveLongValidator CASE_EXPRESSIONS_THRESHOLD = new PositiveLongValidator("planner.case_expressions_threshold", 400, 150);
 
  public static final BooleanValidator ENABLE_SCAN_MIN_COST = new BooleanValidator("planner.cost.minimum.enable", true);
  public static final DoubleValidator DEFAULT_SCAN_MIN_COST = new DoubleValidator("planner.default.min_cost_per_split", 0);
  public static final DoubleValidator ADLS_SCAN_MIN_COST = new DoubleValidator("planner.adl.min_cost_per_split", 1E6);
  public static final DoubleValidator AZURE_STORAGE_SCAN_MIN_COST = new DoubleValidator("planner.azure_storage.min_cost_per_split", 1E6);
  public static final DoubleValidator S3_SCAN_MIN_COST = new DoubleValidator("planner.s3.min_cost_per_split", 1E6);
  public static final DoubleValidator ACCELERATION_SCAN_MIN_COST = new DoubleValidator("planner.acceleration.min_cost_per_split", 0);
  public static final DoubleValidator HOME_SCAN_MIN_COST = new DoubleValidator("planner.home.min_cost_per_split", 0);
  public static final DoubleValidator INTERNAL_SCAN_MIN_COST = new DoubleValidator("planner.internal.min_cost_per_split", 0);
  public static final DoubleValidator ELASTIC_SCAN_MIN_COST = new DoubleValidator("planner.elastic.min_cost_per_split", 0);
  public static final DoubleValidator MONGO_SCAN_MIN_COST = new DoubleValidator("planner.mongo.min_cost_per_split", 0);
  public static final DoubleValidator HBASE_SCAN_MIN_COST = new DoubleValidator("planner.hbase.min_cost_per_split", 0);
  public static final DoubleValidator HIVE_SCAN_MIN_COST = new DoubleValidator("planner.hive.min_cost_per_split", 0);
  public static final DoubleValidator PDFS_SCAN_MIN_COST = new DoubleValidator("planner.pdfs.min_cost_per_split", 0);
  public static final DoubleValidator HDFS_SCAN_MIN_COST = new DoubleValidator("planner.hdfs.min_cost_per_split", 0);
  public static final DoubleValidator MAPRFS_SCAN_MIN_COST = new DoubleValidator("planner.maprfs.min_cost_per_split", 0);
  public static final DoubleValidator NAS_SCAN_MIN_COST = new DoubleValidator("planner.nas.min_cost_per_split", 0);
 
  private static final Set<String> SOURCES_WITH_MIN_COST = ImmutableSet.of(
    "adl",
    "s3",
    "acceleration",
    "home",
    "internal",
    "elastic",
    "mongo",
    "hbase",
    "hive",
    "pdfs",
    "hdfs",
    "maprfs",
    "nas",
    "azure_storage"
    );
 
  /**
   * Option to enable additional push downs (filter, project, etc.) to JDBC sources. Enabling the option may cause
   * the SQL query being push down to be written differently from what is submitted by the user. For example, the join
   * order may change, filter pushed past join, etc.
   */
  public static final BooleanValidator JDBC_PUSH_DOWN_PLUS =
      new BooleanValidator("planner.jdbc.experimental.enable_additional_pushdowns", false);
 
  /**
   * Options to reject queries which will attempt to process more than this many splits: per dataset, and per query
   */
  public static final PositiveLongValidator QUERY_MAX_SPLIT_LIMIT = new PositiveLongValidator("planner.query_max_split_limit", Integer.MAX_VALUE, 300_000);
  public static final PositiveLongValidator DATASET_MAX_SPLIT_LIMIT = new PositiveLongValidator("planner.dataset_max_split_limit", Integer.MAX_VALUE, 300_000);
 
  /**
   * Options to enable/disable plan cache and set plan cache policy
   */
  public static final BooleanValidator QUERY_PLAN_CACHE_ENABLED = new BooleanValidator("planner.query_plan_cache_enabled", false);
   
}
  • 反射
@Options
public interface ReflectionOptions {
 
  // how often should the reflection manager wakeup automatically without any external trigger
  PositiveLongValidator REFLECTION_MANAGER_REFRESH_DELAY_MILLIS = new PositiveLongValidator("reflection.manager.refresh.delay_millis", Long.MAX_VALUE, TimeUnit.SECONDS.toMillis(10));
  // how long deleted reflection goals/materializations are kept in the store/on disk before they are effectively deleted
  PositiveLongValidator REFLECTION_DELETION_GRACE_PERIOD = new PositiveLongValidator("reflection.deletion.grace_seconds", Long.MAX_VALUE, TimeUnit.HOURS.toSeconds(4));
  // how many entries should be deleted every time the reflection manager wakes up
  PositiveLongValidator REFLECTION_DELETION_NUM_ENTRIES = new PositiveLongValidator("reflection.deletion.num_entries", Long.MAX_VALUE, 5);
  // how often should the materialization zombie check be done
  PositiveLongValidator MATERIALIZATION_ORPHAN_REFRESH = new PositiveLongValidator("materialization.orphan.refresh_seconds", Long.MAX_VALUE, TimeUnit.HOURS.toSeconds(4));
  BooleanValidator MATERIALIZATION_CACHE_ENABLED = new BooleanValidator("dremio.materialization.cache.enabled", true);
  // how often should the materialization cache be refreshed
  PositiveLongValidator MATERIALIZATION_CACHE_REFRESH_DELAY_MILLIS = new PositiveLongValidator("reflection.materialization.cache.refresh.delay_millis", Long.MAX_VALUE, TimeUnit.SECONDS.toMillis(30));
  // allows users to set sub-hour refresh and grace periods
  BooleanValidator ENABLE_SUBHOUR_POLICIES = new BooleanValidator("accelerator.enable.subhour.policies", false);
  // control how many voted datasets are promoted every 24 hours
  PositiveLongValidator MAX_AUTOMATIC_REFLECTIONS = new PositiveLongValidator("reflection.auto.max", Integer.MAX_VALUE, 10);
  // should the voting service create aggregation reflections
  BooleanValidator ENABLE_AUTOMATIC_AGG_REFLECTIONS = new BooleanValidator("reflection.auto.agg.enable", false);
  // should the voting service create raw reflections
  BooleanValidator ENABLE_AUTOMATIC_RAW_REFLECTIONS = new BooleanValidator("reflection.auto.raw.enable", false);
  // set to true to prevent external events from waking up the reflection manager
  BooleanValidator REFLECTION_PERIODIC_WAKEUP_ONLY = new BooleanValidator("reflection.manager.wakeup.periodic_only", false);
  BooleanValidator REFLECTION_ENABLE_SUBSTITUTION = new BooleanValidator("reflection.enable.substitutions", true);
  // if a reflection has no known dependencies how long should we wait before we attempt to refresh again
  PositiveLongValidator NO_DEPENDENCY_REFRESH_PERIOD_SECONDS = new PositiveLongValidator("reflection.no_dependency.refresh_period_seconds", Long.MAX_VALUE, TimeUnit.MINUTES.toSeconds(30));
  // should compaction be enabled
  BooleanValidator ENABLE_COMPACTION = new BooleanValidator("reflection.compaction.enabled", false);
  // at least how many files there should be to trigger compaction
  PositiveLongValidator COMPACTION_TRIGGER_NUMBER_FILES = new PositiveLongValidator("reflection.compaction.trigger.num_files", Long.MAX_VALUE, 1);
  // Compaction will be triggered if the median file size is less than or equal to this parameter
  PositiveLongValidator COMPACTION_TRIGGER_FILE_SIZE = new PositiveLongValidator("reflection.compaction.trigger.file_size_mb", Long.MAX_VALUE / (1024 * 1024), 16);
  // Enable caching of reflection whose dist storage is in cloud ( S3, AzureDataLake, AzureFileSystem)
  BooleanValidator CLOUD_CACHING_ENABLED = new BooleanValidator("reflection.cloud.cache.enabled", true);
  // If disabled, only vds schema and expanded sql definition will be considered when deciding to do an incremental refresh
  BooleanValidator STRICT_INCREMENTAL_REFRESH = new BooleanValidator("reflection.manager.strict_incremental_refresh.enabled", false);
  // If enabled, uses Iceberg format for reflection datasets
  BooleanValidator REFLECTION_USE_ICEBERG_DATASET = new BooleanValidator("reflection.manager.use_iceberg_dataset.enabled", false);
  StringValidator NESSIE_REFLECTIONS_NAMESPACE = new StringValidator("reflection.manager.nessie_iceberg_namespace", "dremio.reflections");
}

说明

对于配置的修改建议先了解下,仔细评估下,不见得都是好的,不然可能会引起一些意外的问题

参考资料

https://docs.dremio.com/advanced-administration/support-settings/

标签:dremio,planner,support,public,static,key,new,final,BooleanValidator
来源: https://www.cnblogs.com/rongfengliang/p/15228482.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有