How to configure S3 storage backends in GX 1.9 #11975
|
Hi everyone, I recently migrated my Great Expectations project from version 1.4.4 to 1.9.0. In my previous setup, I used ctx = gx.get_context(
project_config=DataContextConfig(
store_backend_defaults=S3StoreBackendDefaults(
default_bucket_name="...",
expectations_store_prefix=f"great-expectations/{context_name}/expectations/",
validation_results_store_prefix=f"great-expectations/{context_name}/uncommitted/validations/",
validation_definition_store_prefix=f"great-expectations/{context_name}/validation_definitions/",
checkpoint_store_prefix=f"great-expectations/{context_name}/checkpoints/",
data_docs_prefix=f"great-expectations/{context_name}/uncommitted/data_docs/",
)
),
)After reviewing the V1 migration guides and the latest documentation, I noticed that only ephemeral, in-memory, or local filesystem contexts seem to be natively configurable. I am struggling to find an equivalent implementation for S3 in the updated API. My questions are:
I appreciate any guidance, workarounds, or clarification on the architectural direction of the library regarding cloud metadata storage! Thank you! |
Replies: 1 comment
|
hi @Saamu192, thanks for the question. Yes, cloud-specific store backend support was removed in GX v1.0. The implementations were just thin wrappers around the cloud SDK. They weren't up to our standards and fell outside the core scope of the library, and so we decided to remove them from the API with the v1 release. As you guessed, the recommended path is to sync your FileDataContext to/from the bucket with the cloud SDK each run. Pull down your I'm working on some documentation for this pattern, so any feedback you might have is welcome! |
hi @Saamu192, thanks for the question. Yes, cloud-specific store backend support was removed in GX v1.0. The implementations were just thin wrappers around the cloud SDK. They weren't up to our standards and fell outside the core scope of the library, and so we decided to remove them from the API with the v1 release.
As you guessed, the recommended path is to sync your FileDataContext to/from the bucket with the cloud SDK each run. Pull down your
gxdirectory, run your Checkpoint, and push back only the result under a unique key name. Two places are important to avoid concurrency: updating your GX config itself, and building DataDocs. For updating your config it's best to have a single so…