-
Notifications
You must be signed in to change notification settings - Fork 0
/
documentation_model.yaml
54 lines (51 loc) · 2.63 KB
/
documentation_model.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
!Documentation
# In a yaml model, we set different type of attrubtes,:
# - Mandatory user-entered attributes without defaults
# - Optional user-entered attributes without defaults
# - Default customizable attributes either mandatory or optional )
# - Hardcoded values implemented in program logic that cannot be customized
tables:
Hub:
-- Mandatory
nat_key:
- {name: myname, format: myfmt, src: mysrc}
src: mysrc
-- Optional
extras:
- {name: myname, format: myfmt, src: mysrc}
-- Defaults customizable (sur_key is optional, if needed need at least to set an empty dict{})
sur_key: {name: <name>_key, format: number(9), seq: <name>_seq}
-- Hardcoded
primary_key: {name: derived_from_code, format: derived}
unique_key: derived_from_code
keys_join: derived_from_code
Link:
-- Mandatory
hubs: [ mylistofhubs, ..]
src: mysrc
-- Optional
extras:
- {name: myname, format: myfmt, src: mysrc}
-- Defaults customizable (unlike hub, sur_key is mandatory, when not set reverts back to defaults)
sur_key: {name: <name>_key, format: number(9), seq: <name>_seq}
for_keys: {name: <hubs.primary_key.name>, src: <hubs.nat_keys.src> (list of list)}
-- Hardcoded
for_keys: {format: <hubs.primary_key.format>}
nat_keys_join: derived_from_code
keys_join: derived_from_code
Sat:
-- Mandatory
hub: myhub
src: mysrc
-- Optional
atts:
- {name: myname, format: myfmt, src: mysrc}
lfc: {src: mysrc}
-- Defaults customizable (when lfc.exp not needed simply set = Null
lfc: {name: effective_date, exp: expiration_date, format: date}
for_key: {name: <hub.primary_key.name>, src: <hub.nat_keys.src>}
-- hardcoded in program logic
for_key: {format: <hub.primary_key.format>}
primary_key: {name: derived(see code), format: derived}
globals:
target_schema: my_schema