forked from QPC-github/cloud-data-quality
-
Notifications
You must be signed in to change notification settings - Fork 0
/
referential_integrity.yaml
80 lines (70 loc) · 1.67 KB
/
referential_integrity.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
entities:
TEST_DATA:
source_database: BIGQUERY
table_name: <table_id>
dataset_name: <dataset_id>
project_name: <project_id>
columns:
UNIQUE_KEY:
name: unique_key
data_type: INTEGER
DESCRIPT:
name: descript
data_type: STRING
DATE:
name: date
data_type: DATE
TIME:
name: time
data_type: TIME
ADDRESS:
name: address
data_type: STRING
LON:
name: longitude
data_type: FLOAT
LAT:
name: latitude
data_type: FLOAT
LOCATION:
name: location
data_type: STRING
TIMESTAMP:
name: timestamp
data_type: TIMESTAMP
rules:
ACCEPTED_CURRENCY:
rule_type: CUSTOM_SQL_EXPR
params:
custom_sql_expr: |-
$column in (‘USD’, ‘EUR’, ‘CNY’)
REF_SUBQUERY:
rule_type: CUSTOM_SQL_EXPR
custom_sql_arguments:
start_date
params:
custom_sql_expr: |-
$column in (select cast(unique_key as string) from <dataset_id>.`<ref_table_id>` where timestamp >= "$start_date")
FOREIGN_KEY_VALID:
rule_type: CUSTOM_SQL_EXPR
params:
custom_sql_expr: |-
$column in (select distinct unique_key from <dataset_id>.`<pk_ref_table_id>`)
row_filters:
NONE:
filter_sql_expr: |-
True
rule_bindings:
REF_SUBQUERY:
entity_id: TEST_DATA
column_id: UNIQUE_KEY
row_filter_id: NONE
rule_ids:
- REF_SUBQUERY:
start_date: '2016-01-01'
FOREIGN_KEY_VALID:
entity_id: TEST_DATA
column_id: UNIQUE_KEY
row_filter_id: NONE
rule_ids:
- FOREIGN_KEY_VALID