-
Notifications
You must be signed in to change notification settings - Fork 27
Vacuum Command
The vacuum
command outputs a list of unused content based on predefined criteria that a developer can then use to cleanup models and explores.
The vacuum models
command exposes models and the number of queries against them over a predefined period of time. Explores that are listed here have not had the minimum number of queries against them in the timeframe specified. As a result it is safe to hide them and later delete them.
+------------------+---------------------------------------------+-------------------------+
| model | unused_explores | model_query_run_count |
|------------------+---------------------------------------------+-------------------------|
| salesforce | None | 39450 |
| thelook | None | 164930 |
| powered_by | None | 49453 |
| thelook_adwords | None | 38108 |
| looker_on_looker | user_full | 27 |
| | history_full | |
| | content_view | |
| | project_status | |
| | field_usage_full | |
| | dashboard_performance_full | |
| | user_weekly_app_activity_period_over_period | |
| | pdt_state | |
| | user_daily_query_activity | |
+------------------+---------------------------------------------+-------------------------+
The vacuum explores
command exposes joins and exposes fields that are below the minimum number of queries threshold (default: 0, can be changed using the --min_queries
argument) over the specified timeframe (default: 90, can be changed using the --timeframe
argument).
Example: from the analyze function run here, we know that the cohorts explore has 4 fields that haven't been queried once in the past 90 days. Running the following vacuum command:
$ henry vacuum explores --model thelook --explore cohorts
provides the name of unused joins and fields:
+---------+-----------+----------------+------------------------------+
| model | explore | unused_joins | unused_fields |
|---------+-----------+----------------+------------------------------|
| thelook | cohorts | users | order_items.created_date |
| | | | order_items.id |
| | | | order_items.total_sale_price |
+---------+-----------+----------------+------------------------------+
If a join is unused, it's implying that fields introduced by that join haven't been used for the defined timeframe. For this reason fields exposed as a result of that join are not explicitly listed as unused fields.
It is very important to note that fields vacuumed fields in one explore are not meant to be completely removed from view files altogether because they might be used in other explores or joins. Instead, one should either hide those fields (if they're not used anywhere else) or exclude them from the explore using the fields
LookML parameter.