Case2. canonical_id ごとに master_table を作成する#
(Case1. の続き) 今度は、それぞれの canonical_id ごとに master_table を作成する方法を紹介しよう。 以下の様に master_table を複数列挙することができる。
master_tables:
- name: master_table_ex3
canonical_id: unified_brand_id
attributes:
- name: td_client_id
invalid_texts: ['']
source_columns:
- {table: '${td.tbl_aaa}', order: first, order_by: td_client_id, priority: 1}
- {table: '${td.tbl_xxx}', order: first, order_by: td_client_id, priority: 1}
- {table: '${td.tbl_yyy}', order: first, order_by: td_client_id, priority: 1}
- {table: '${td.tbl_zzz}', order: first, order_by: td_client_id, priority: 1}
- name: td_global_id
valid_regexp: "3rd_*"
invalid_texts: ['']
source_columns:
- {table: '${td.tbl_aaa}', order: last, order_by: time, priority: 1}
- {table: '${td.tbl_xxx}', order: last, order_by: time, priority: 1}
- {table: '${td.tbl_yyy}', order: last, order_by: time, priority: 1}
- {table: '${td.tbl_zzz}', order: last, order_by: time, priority: 1}
- name: master_table_brand_id_ax
canonical_id: brand_id_ax
attributes:
- name: td_client_id
invalid_texts: ['']
source_columns:
- {table: '${td.tbl_aaa}', order: first, order_by: td_client_id, priority: 1}
- {table: '${td.tbl_xxx}', order: first, order_by: td_client_id, priority: 1}
- name: td_global_id
valid_regexp: "3rd_*"
invalid_texts: ['']
source_columns:
- {table: '${td.tbl_aaa}', order: last, order_by: time, priority: 1}
- {table: '${td.tbl_xxx}', order: last, order_by: time, priority: 1}
- name: master_table_brand_id_yz
canonical_id: brand_id_yz
attributes:
- name: td_client_id
invalid_texts: ['']
source_columns:
- {table: '${td.tbl_yyy}', order: first, order_by: td_client_id, priority: 1}
- {table: '${td.tbl_zzz}', order: first, order_by: td_client_id, priority: 1}
- name: td_global_id
valid_regexp: "3rd_*"
invalid_texts: ['']
source_columns:
- {table: '${td.tbl_yyy}', order: last, order_by: time, priority: 1}
- {table: '${td.tbl_zzz}', order: last, order_by: time, priority: 1}
master_table#
この時、各々生成される master_table は以下のようになる。
master_table_ex3#
unified_brand_id |
td_client_id |
td_global_id |
---|---|---|
jiioKQC2uMFH |
aaa_001 |
3rd_018 |
master_table_brand_id_ax#
brand_id_ax |
td_client_id |
td_global_id |
---|---|---|
jiioKQC2uMFH |
aaa_001 |
3rd_005 |
0_LjXD4ScR1H |
aaa_002 |
3rd_010 |
A0T5jlq77XJH |
aaa_003 |
3rd_017 |
master_table_brand_id_yz#
brand_id_yz |
td_client_id |
td_global_id |
---|---|---|
NCnsgr0MusJH |
yyy_001 |
3rd_001 |
UA9xZODmd_pH |
yyy_002 |
3rd_008 |
lb8seLF7YZBH |
yyy_003 |
3rd_012 |
jaUfFmYfVjJH |
yyy_004 |
3rd_018 |
nBTjvWWxqydH |
zzz_001 |
3rd_002 |
enriched_ Table#
master_table が複数作成された場合でも、enriched_ Table はソーステーブルごとに常に1つとなる。ただ Case1 と異なる事は、全ての canonical_id がソーステーブルにエンリッチされるため、どの master_table を使用しても紐付けが可能になっている。
ただし、source_tables:
が指定されている brand_id_ax と brand_id_yz は、そこに指定されたテーブルに対してのみエンリッチされることになる。以下が、エンリッチされたテーブルである。
enriched_site_aaa#
site |
td_client_id |
td_global_id |
brand_id_ax |
unified_brand_id |
---|---|---|---|---|
aaa.jp |
aaa_001 |
3rd_001 |
jiioKQC2uMFH |
jiioKQC2uMFH |
aaa.jp |
aaa_001 |
3rd_002 |
jiioKQC2uMFH |
jiioKQC2uMFH |
aaa.jp |
aaa_001 |
3rd_003 |
jiioKQC2uMFH |
jiioKQC2uMFH |
aaa.jp |
aaa_001 |
3rd_004 |
jiioKQC2uMFH |
jiioKQC2uMFH |
brand_id_ax と unified_brand_id で同じ値となっているが、どちらもたまたま aaa_001 が最終 leader となり、それをベースに canonical_id が生成されているためである。双方の canonical_id が関係を持っているわけではない。
enriched_site_xxx#
site |
td_client_id |
td_global_id |
brand_id_ax |
unified_brand_id |
time |
---|---|---|---|---|---|
xxx.jp |
1672876800 |
||||
xxx.jp |
1673740800 |
||||
xxx.jp |
1674604800 |
||||
xxx.jp |
xxx_001 |
3rd_004 |
jiioKQC2uMFH |
jiioKQC2uMFH |
1675555200 |
xxx.jp |
xxx_001 |
3rd_005 |
jiioKQC2uMFH |
jiioKQC2uMFH |
1676419200 |
enriched_site_yyy#
site |
td_client_id |
td_global_id |
brand_id_yz |
unified_brand_id |
time |
---|---|---|---|---|---|
yyy.jp |
yyy_001 |
3rd_001 |
NCnsgr0MusJH |
jiioKQC2uMFH |
1672876800 |
yyy.jp |
1673740800 |
||||
yyy.jp |
1674604800 |
||||
yyy.jp |
1675555200 |
||||
yyy.jp |
yyy_002 |
3rd_005 |
UA9xZODmd_pH |
jiioKQC2uMFH |
1676419200 |
enriched_site_zzz#
site |
td_client_id |
td_global_id |
brand_id_yz |
unified_brand_id |
time |
---|---|---|---|---|---|
zzz.jp |
1672876800 |
||||
zzz.jp |
zzz_001 |
3rd_002 |
nBTjvWWxqydH |
jiioKQC2uMFH |
1673740800 |
zzz.jp |
1674604800 |
||||
zzz.jp |
1675555200 |
||||
zzz.jp |
1676419200 |