Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incrematal Flag for SQL Validation does not not work and it checks all Explores #790

Open
Folux opened this issue Mar 24, 2024 · 0 comments

Comments

@Folux
Copy link

Folux commented Mar 24, 2024

Hey,

I am running an SQL Validation in a Github action on my branch. The branch has only one view changed and I would expect the incremental run to find the explores where this view is used and only check these elements.

TLDR: Is it an expected behaviour that incremental SQL validations are always getting all dimensions from all explores and test all queries regardless if there was any change in a view or an explore?

Here are some details:

I call spectacles with this command:
spectacles sql --project delivery --branch ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} --incremental --remote-reset --concurrency 20 --ignore-hidden -v
The ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} is correctly set to spectacles-sql-checks what is my branch name.

I would expect that it would only get the elements for one Explore and only check those. Instead, it tries to get everything and runs for over 6 hours.

From the logs, I can see that it gets all the explores:

...
Setting Git state for project 'delivery' @ spectacles-sql-checks:
...
Getting all models and explores from https://MY_COMPANY.cloud.looker.com
...
Getting all dimensions from explore ... (<- FOR EVERY EXPLORE)
Creating async query for ... (<- FOR EVERY EXPLORE)
Query for ... created as ... (<- FOR EVERY EXPLORE)
Retrieving the SQL for query ... (<- FOR EVERY QUERY CREATED FOR ALL THE EXPLORES)
Retrieved compiled SQL for query ... (<- FOR EVERY QUERY CREATED FOR ALL THE EXPLORES)
...
Setting Git state for project 'delivery' @ production:
... (SAME AS FOR THE spectacles-sql-checks TARGET)
...
================= Testing 155/310 explores [concurrency = 20] ==================
...
... (THIS RUNS OVER A THOUSAND QUERIES AND AFTER 6 HOURS I KILLED THE PROCESS)

Running this check locally I get the same behaviour.

I would expect that Specatcles runs the same way as if I would have manually added a flag to filter for the Explore --explores. For example like this:
spectacles sql --project delivery --explores delivery/my_changed_explore_in_this_project
This command correctly tests only the elements in one Explore.

Just for the reference. Here is one screenshot from Github to show you the changes in my PR. On this PR Spectacles still checks all Explores even if it is in the incremental mode.
Screenshot from PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant