Skip to content

Commit f8d2d84

Browse files
committed
review fixes
1 parent d89639e commit f8d2d84

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/Databases/DataLake/GlueCatalog.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
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+
7481
namespace 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));

src/Databases/DataLake/GlueCatalog.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <Poco/JSON/Object.h>
1010
#include <Poco/LRUCache.h>
1111

12+
#include <Common/CacheBase.h>
1213
#include <Databases/DataLake/DatabaseDataLakeSettings.h>
1314

1415
namespace Aws::Glue
@@ -73,7 +74,7 @@ class GlueCatalog final : public ICatalog, private DB::WithContext
7374
/// This method allows to clarify the actual type of the timestamp column.
7475
bool classifyTimestampTZ(const String & column_name, const TableMetadata & table_metadata) const;
7576

76-
mutable Poco::LRUCache<String, Poco::JSON::Object::Ptr> metadata_objects;
77+
mutable DB::CacheBase<String, Poco::JSON::Object::Ptr> metadata_objects;
7778
};
7879

7980
}

0 commit comments

Comments
 (0)