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
# -*- coding: UTF-8 -*-
from django.conf import settings
from gm_dbmw_api.descriptor import source, relation
from gm_types.mq.dbmw import DBMWEndPoints
pk_data_source = source.GroupedSource.of(
source.MySQLTableSource(
logical_database_id=settings.LOGICAL_DATABASE_ID,
table_name='api_question',
value_columns_all=True,
key_columns=['id']
),
source.MySQLTableSource(
logical_database_id=settings.LOGICAL_DATABASE_ID,
table_name='api_answer',
key_columns=['question_id'],
value_columns_all=True,
),
source.RelatedSource(
source=source.GMMQSource(
endpoint=DBMWEndPoints.GAIA_TAG,
),
relation=relation.MySQLTableRelation(
logical_database_id=settings.LOGICAL_DATABASE_ID,
table_name='api_questiontag',
from_columns=['tag_id'],
to_columns=['question_id'],
)
),
source.RelatedSource(
source=source.GroupedSource.of(
source.MySQLTableSource(
logical_database_id=settings.DBMW_LOGICAL_DATABASE_ID,
table_name="api_doctor",
key_columns=['user_id'],
value_columns_excluded=['view_num', 'reply_num', 'new_pm_num', 'reply_pm_num', 'no_reply_pm_num',
'share_topic_num', 'last_answered_time'],
value_columns_all=True,
),
source.RelatedSource(
source=source.GMMQSource(
endpoint=DBMWEndPoints.PUNISHMENT_TRIGGER,
),
relation=relation.MySQLTableRelation(
logical_database_id=settings.DBMW_LOGICAL_DATABASE_ID,
table_name="api_doctor",
from_columns=["id"],
to_columns=["user_id"],
)
)
),
relation=relation.MySQLTableRelation(
logical_database_id=settings.LOGICAL_DATABASE_ID,
table_name='api_question',
from_columns=['user_id'],
to_columns=['id'],
)
),
source.GMMQSource(
endpoint=DBMWEndPoints.QUESTION_TRIGGER,
)
)
index_data_source = pk_data_source