Using mock deployments in Snowflake
When calling Modelbit deployments during data pipeline or dbt jobs, you may want to skip calling the model during tests or development. Modelbit provides mock functions for these situations.
Use session variables to tell Modelbit whether to call the predictive model or to return static data instead. Setting MODELBIT_MOCK
to 'MOCK'
tells Modelbit to skip calling the API during this session:
set MODELBIT_MOCK = 'MOCK';
select ext_example_func_123(...); -- won't call predictive model
If you don't set MODELBIT_MOCK
, or unset it, Modelbit will follow the default behavior and call the predictive model:
unset MODELBIT_MOCK;
select ext_example_func_123(...); -- will call predictive model
Specifying the mock return value
By default, calling a deployment in MOCK
mode will return null. You can change the deployment to return another value by setting snowflake_mock_return_value
when calling mb.deploy
.
For example, suppose we want to supply a mock value for the spaCy deployment that splits paragraphs into sentences:
mb.deploy(segment_sentences,
snowflake_mock_return_value=["Fish live in the ocean.", "Birds live in trees."])
Mocked return values can be any value you choose as long as they conform to the return type of the inference function. For example, if your inference function returns integers the mock value must also be an integer. Mock return values can also be specified directly in git in your metadata.yaml
Changing mock return values
You can use mb.get_snowflake_mock_return_value
to fetch mock return values for the current or previous versions of a deployment.
And you can use mb.set_snowflake_mock_return_value
to change the mock value of a deployment without needing to call mb.deploy
.
Using mock functionality with dbt
To use mock functionality in your dbt models with a helpful macro, view the documentation about calling your models from dbt.