1010#include < aws/glue/model/GetDatabasesRequest.h>
1111
1212#include < Common/Exception.h>
13+ #include < Common/CurrentMetrics.h>
1314#include < Core/Settings.h>
1415#include < Interpreters/Context.h>
1516
@@ -71,6 +72,12 @@ namespace DB::DatabaseDataLakeSetting
7172 extern const DatabaseDataLakeSettingsString region;
7273}
7374
75+ namespace CurrentMetrics
76+ {
77+ extern const Metric MarkCacheBytes;
78+ extern const Metric MarkCacheFiles;
79+ }
80+
7481namespace DataLake
7582{
7683
@@ -86,6 +93,7 @@ GlueCatalog::GlueCatalog(
8693 , region(settings_[DB::DatabaseDataLakeSetting::region].value)
8794 , settings(settings_)
8895 , table_engine_definition(table_engine_definition_)
96+ , metadata_objects(CurrentMetrics::MarkCacheBytes, CurrentMetrics::MarkCacheFiles, 1024 )
8997{
9098 DB::S3::CredentialsConfiguration creds_config;
9199 creds_config.use_environment_credentials = true ;
@@ -432,7 +440,7 @@ bool GlueCatalog::classifyTimestampTZ(const String & column_name, const TableMet
432440
433441 auto storage_settings = std::make_shared<DB::DataLakeStorageSettings>();
434442 storage_settings->loadFromSettingsChanges (settings.allChanged ());
435- auto configuration = std::make_shared<DB::StorageS3DeltaLakeConfiguration >(storage_settings);
443+ auto configuration = std::make_shared<DB::StorageS3IcebergConfiguration >(storage_settings);
436444 DB::StorageObjectStorage::Configuration::initialize (*configuration, args, getContext (), false );
437445
438446 auto object_storage = configuration->createObjectStorage (getContext (), true );
@@ -445,11 +453,12 @@ bool GlueCatalog::classifyTimestampTZ(const String & column_name, const TableMet
445453
446454 Poco::JSON::Parser parser;
447455 Poco::Dynamic::Var result = parser.parse (metadata_file);
448- metadata_objects.add (metadata_path, result.extract <Poco::JSON::Object::Ptr>());
456+ auto metadata_object = result.extract <Poco::JSON::Object::Ptr>();
457+ metadata_objects.set (metadata_path, std::make_shared<Poco::JSON::Object::Ptr>(metadata_object));
449458 }
450459 auto metadata_object = *metadata_objects.get (metadata_path);
451460 auto current_schema_id = metadata_object->getValue <Int64>(" current-schema-id" );
452- auto schemas = metadata_object->getArray (" schemas " );
461+ auto schemas = metadata_object->getArray (Iceberg::f_schemas );
453462 for (size_t i = 0 ; i < schemas->size (); ++i)
454463 {
455464 auto schema = schemas->getObject (static_cast <UInt32>(i));
0 commit comments