``When trying to use the filters feature, whose source is MySQL and the destination is bigquery, the execution fails. With an exception from ibis/backends/base_sqlalchemy/compiler.py: Value error: ibis.common.exceptions.OperationNotDefinedError: No translation rule for <class 'third_party.ibis.ibis_addon.operations.RawSQL'>
error log
Traceback (most recent call last):
File "/home/cloudbreak/python3.9_venv/bin/data-validation", line 8, in <module>
sys.exit(main())
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/data_validation/__main__.py", line 501, in main
run_validation_configs(args)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/data_validation/__main__.py", line 471, in run_validation_configs
run_validations(args, config_managers)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/data_validation/__main__.py", line 424, in run_validations
run_validation(config_manager, verbose=args.verbose)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/data_validation/__main__.py", line 413, in run_validation
validator.execute()
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/data_validation/data_validation.py", line 89, in execute
result_df = self.execute_recursive_validation(
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/data_validation/data_validation.py", line 218, in execute_recursive_validation
self._execute_validation(
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/data_validation/data_validation.py", line 310, in _execute_validation
source_df = self.config_manager.source_client.execute(source_query)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/client.py", line 220, in execute
query = self._get_query(query_ast, **kwargs)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/client.py", line 226, in _get_query
return self.query_class(self, dml, **kwargs)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/client.py", line 40, in __init__
self.compiled_sql = sql.compile()
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/compiler.py", line 55, in compile
compiled_queries = [q.compile() for q in self.queries]
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/compiler.py", line 55, in <listcomp>
compiled_queries = [q.compile() for q in self.queries]
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/alchemy.py", line 1333, in compile
frag = step(frag)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/alchemy.py", line 1420, in _add_where
args = [
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/alchemy.py", line 1421, in <listcomp>
self._translate(pred, permit_subquery=True) for pred in self.where
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/compiler.py", line 1598, in _translate
return translator.get_result()
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/compiler.py", line 1362, in get_result
translated = self.translate(self.expr)
File "/home/cloudbreak/python3.9_venv/lib/python3.9/site-packages/ibis/backends/base_sqlalchemy/compiler.py", line 1403, in translate
raise com.OperationNotDefinedError(
ibis.common.exceptions.OperationNotDefinedError: No translation rule for <class 'third_party.ibis.ibis_addon.operations.RawSQL'>
We tried to use the filter with both approaches passing it as parameter and also passing it explicitly on a YAML file but got the above error for both the cases.
When passing it as parameter:
data-validation validate row --source-conn CONN_NAME --target-conn bq_conn --tables-list testdb.billed_handset_code_sql_new=$projectid.dbbqq.billed_handset_code_test --comparison-fields usi --primary-keys usi_channel_id --filters 'usi_channel_id=2'
``When trying to use the filters feature, whose source is MySQL and the destination is bigquery, the execution fails. With an exception from ibis/backends/base_sqlalchemy/compiler.py: Value error: ibis.common.exceptions.OperationNotDefinedError: No translation rule for <class 'third_party.ibis.ibis_addon.operations.RawSQL'>
error log
We tried to use the filter with both approaches passing it as parameter and also passing it explicitly on a YAML file but got the above error for both the cases.
When passing it as parameter:
data-validation validate row --source-conn CONN_NAME --target-conn bq_conn --tables-list testdb.billed_handset_code_sql_new=$projectid.dbbqq.billed_handset_code_test --comparison-fields usi --primary-keys usi_channel_id --filters 'usi_channel_id=2'
When passing it explicitly on a YAML file
But when I try to use the filter parameter whose source is bigquery and the destination is bigquery it works properly:
data-validation validate row --source-conn bq_conn --target-conn bq_conn --tables-list projectid.dbbqq.billed_handset_code_test_dummy=projectid.dbbqq.billed_handset_code_test --comparison-fields usi --primary-keys usi_channel_id --filters 'usi_channel_id=2'