Configuration objects can be used when creating a TileDB context, or when using consolidation and virtual filesystem (VFS) functionality. See Configuration Parameters for a summary of all TileDB configuration options.
You can create and set configuration objects as follows:
// Create a configuration objecttiledb_config_t *config;tiledb_config_alloc(&config, NULL);​// Set a configuration parametertiledb_config_set(config, "sm.tile_cache_size", "5000", &error);​// Get a configuration parameterconst char* value;tiledb_config_get(config, "sm.tile_cache_size", &value, &error);​// Unset a configuration parametertiledb_config_unset(config, "sm.tile_cache_size", &error);​// Clean uptiledb_config_free(&config);
// Create a configuration objectConfig config;​// Set a configuration parameterconfig["sm.tile_cache_size"] = "5000";​// Get a configuration parameterstd::string = config["sm.tile_cache_size"];​// Unset a configuration parameterconfig.unset("sm.tile_cache_size");
# Create a configuration objectconfig = tiledb.Config()​# Set a configuration parameterconfig["sm.tile_cache_size"] = 5000​# Config objects may also be initialized with a dictionaryconfig = tiledb.Config({"sm.tile_cache_size": 5000})​# Remove a configuration parameter# (resets to the default value)del config["sm.tile_cache_size"]
# Create a configuration objectconfig <- tiledb_config()​# Set a configuration parameterconfig["sm.tile_cache_size"] <- "5000"​# Get a configuration parametertile_cache_size <- config["sm.tile_cache_size"]​# Unset a configuration parametertiledb_config_unset(config, "sm.tile_cache_size")
try(Config config = new Config()) {// Set a configuration parameterconfig.set("sm.tile_cache_size", "5000");// Get a configuration parameterString tile_cache_size = config.get("sm.tile_cache_size");// Unset a configuration parameterconfig.unset("sm.tile_cache_size");}
// Create a configuration objectconfig, _ := tiledb.NewConfig()​// Set a configuration parameterconfig.Set("sm.tile_cache_size", "5000");​// Get a configuration parametersmTileCacheSize, _ := config.Get("sm.tile_cache_size")​// Unset a configuration parameterconfig.Unset("sm.tile_cache_size")​// Clean upconfig.Free()
You can save a configuration object into a text file, as well as load a configuration object from a text file, as follows:
// Create a TileDB configtiledb_config_t* config;tiledb_config_alloc(&config, NULL);tiledb_config_set(config, "sm.tile_cache_size", "0", &error);​// Save to filetiledb_config_save_to_file(config, "tiledb_config.txt", &error);​// Load from filetiledb_config_t* config_load;tiledb_config_alloc(&config_load, &error);tiledb_config_load_from_file(config_load, "tiledb_config.txt", &error);const char* value;tiledb_config_get(config_load, "sm.tile_cache_size", &value, &error);​// Clean uptiledb_config_free(&config);tiledb_config_free(&config_load);
// Save to fileConfig config;config["sm.tile_cache_size"] = 0;config.save_to_file("tiledb_config.txt");​// Load from fileConfig config_load("tiledb_config.txt");std::string tile_cache_size = config_load["sm.tile_cache_size"];
config = tiledb.Config()config["sm.tile_cache_size"] = 0config.save("tiledb_config.txt")​config_load = tiledb.Config.load("tiledb_config.txt")
# Save to fileconfig <- tiledb_config()config["sm.tile_cache_size"] <- 0;tiledb_config_save(config, "tiledb_config.txt")​# Load from fileconfig_loaded <- tiledb_config_load("tiledb_config.txt")tile_cache_size = config_loaded["sm.tile_cache_size"]
// Save to filetry(Config config = new Config()) {config.set("sm.tile_cache_size", "0");config.saveToFile("tiledb_config.txt");​// Load from fileConfig config_load = new Config("tiledb_config.txt");String tile_cache_size = config_load.get("sm.tile_cache_size");}
// Create a TileDB configconfig, _ := tiledb.NewConfig()​// Set a valueconfig.Set("sm.tile_cache_size", "8")​// Save to fileconfig.SaveToFile(configFileName)​// Load from filenewConfig, _ := tiledb.LoadConfig(configFileName)​// Retrieve valuesmTileCacheSize, _ := newConfig.Get("sm.tile_cache_size")​// Clean upconfig.Free()
You can also use a configuration iterator as follows:
// Create a TileDB configtiledb_config_t* config;tiledb_config_alloc(&config, NULL);​// Create a TileDB config iterator// You can use any prefix instead of "vfs.s3."tiledb_config_iter_t* config_iter;tiledb_config_iter_alloc(config, "vfs.s3.", &config_iter, &error);​// Print all configuration parameters that start with "vfs.s3"// Note that the prefix is exluded from the resultsprintf("\nVFS S3 settings:\n");int done = 0;const char *param, *value;tiledb_config_iter_done(config_iter, &done, &error);while (!done) {tiledb_config_iter_here(config_iter, ¶m, &value, &error);printf("\"%s\" : \"%s\"\n", param, value);tiledb_config_iter_next(config_iter, &error);tiledb_config_iter_done(config_iter, &done, &error);}​// You can reset the iterator as followstiledb_config_iter_reset(config, config_iter, NULL, NULL);​// Clean uptiledb_config_free(&config);tiledb_config_iter_free(&config_iter);
Config config;​// Print only the S3 settings// You can use any prefix instead of "vfs.s3."// Note that the prefix is exluded from the resultsstd::cout << "\nVFS S3 settings:\n";for (auto i = config.begin("vfs.s3."); i != config.end(); ++i) {auto& p = *i;std::cout << "\"" << p.first << "\" : \"" << p.second << "\"\n";}
# ... create/open a Config object​for (key,value) in config.items():print(f"'{key}': '{value}'")# keys may optionally be filtered by passing a prefix to `items()`for (key,value) in config.items("vfs.s3."):print(f"'{key}': '{value}'")
# R has no native iterator but one loop over the config elements# by retrieving the configuration as a vector​cfg <- as.vector(tiledb_config())​# print all non-empty config elementsfor (n in names(cfg))if (cfg[n] != "")cat(n, ":", cfg[n], "\n")
try(Config config = new Config()) {// Print only the S3 settings// You can use any prefix instead of "vfs.s3."// Note that the prefix is exluded from the resultsSystem.out.printf("\nVFS S3 settings:\n");for (Map.Entry me : config.parameters("vfs.s3").entrySet()) {System.out.Printf("\"%s\" : \"%s\"\n", p.getKey(), p.getValue());}}
fmt.Println("VFS S3 settings:\n")​config, _ := NewConfig()​// Iterate the configurationiter, _ := config.Iterate("vfs.s3.")​for ; !iter.IsDone(); _ = iter.Next() {// Get current param, value from iteratorparam, value, _ := iter.Here()fmt.Printf("%s: %s\n", *param, *value)}
​