2
2
3
3
namespace NKafka {
4
4
5
- const TString INSERT_NEW_GROUP = R"(
5
+ const TString INSERT_NEW_GROUP = R"sql (
6
6
--!syntax_v1
7
7
DECLARE $ConsumerGroup AS Utf8;
8
8
DECLARE $Generation AS Uint64;
9
9
DECLARE $State AS Uint64;
10
10
DECLARE $Database AS Utf8;
11
11
DECLARE $Master AS Utf8;
12
+ DECLARE $LastHeartbeat AS Datetime;
12
13
13
- INSERT INTO `/Root/.metadata/kafka_consumer_groups `
14
+ INSERT INTO `%s `
14
15
(
15
16
consumer_group,
16
17
generation,
@@ -25,54 +26,58 @@ const TString INSERT_NEW_GROUP = R"(
25
26
$Generation,
26
27
$State,
27
28
$Database,
28
- CurrentUtcDateTime() ,
29
+ $LastHeartbeat ,
29
30
$Master
30
31
);
31
- )" ;
32
+ )sql " ;
32
33
33
- const TString UPDATE_GROUP = R"(
34
+ const TString UPDATE_GROUP = R"sql (
34
35
--!syntax_v1
35
36
DECLARE $ConsumerGroup AS Utf8;
36
37
DECLARE $State AS Uint64;
37
38
DECLARE $Generation AS Uint64;
38
39
DECLARE $Database AS Utf8;
39
40
DECLARE $Master AS Utf8;
41
+ DECLARE $LastHeartbeat AS Datetime;
40
42
41
- UPDATE `/Root/.metadata/kafka_consumer_groups `
43
+ UPDATE `%s `
42
44
SET
43
45
state = $State,
44
46
generation = $Generation,
45
- last_heartbeat_time = CurrentUtcDateTime() ,
47
+ last_heartbeat_time = $LastHeartbeat ,
46
48
master = $Master
47
49
WHERE consumer_group = $ConsumerGroup
48
50
AND database = $Database;
49
- )" ;
51
+ )sql " ;
50
52
51
- const TString UPDATE_GROUP_STATE_AND_PROTOCOL = R"(
53
+ const TString UPDATE_GROUP_STATE_AND_PROTOCOL = R"sql (
52
54
--!syntax_v1
53
55
DECLARE $ConsumerGroup AS Utf8;
54
56
DECLARE $State AS Uint64;
55
57
DECLARE $Database AS Utf8;
56
58
DECLARE $Protocol AS Utf8;
59
+ DECLARE $LastHeartbeat AS Datetime;
57
60
58
- UPDATE `/Root/.metadata/kafka_consumer_groups `
61
+ UPDATE `%s `
59
62
SET
60
63
state = $State,
61
- last_heartbeat_time = CurrentUtcDateTime() ,
64
+ last_heartbeat_time = $LastHeartbeat ,
62
65
protocol = $Protocol
63
66
WHERE consumer_group = $ConsumerGroup
64
67
AND database = $Database;
65
- )" ;
68
+ )sql " ;
66
69
67
- const TString INSERT_MEMBER = R"(
70
+ const TString INSERT_MEMBER = R"sql (
68
71
--!syntax_v1
69
72
DECLARE $ConsumerGroup AS Utf8;
70
73
DECLARE $Generation AS Uint64;
71
74
DECLARE $MemberId AS Utf8;
72
75
DECLARE $WorkerStateProto AS String;
73
76
DECLARE $Database AS Utf8;
77
+ DECLARE $LastHeartbeat AS Datetime;
74
78
75
- INSERT INTO `/Root/.metadata/kafka_consumer_members` (
79
+ INSERT INTO `%s`
80
+ (
76
81
consumer_group,
77
82
generation,
78
83
member_id,
@@ -84,21 +89,22 @@ const TString INSERT_MEMBER = R"(
84
89
$ConsumerGroup,
85
90
$Generation,
86
91
$MemberId,
87
- CurrentUtcDateTime() ,
92
+ $LastHeartbeat ,
88
93
$WorkerStateProto,
89
94
$Database
90
95
);
91
- )" ;
96
+ )sql " ;
92
97
93
- const TString UPSERT_ASSIGNMENTS_AND_SET_WORKING_STATE = R"(
98
+ const TString UPSERT_ASSIGNMENTS_AND_SET_WORKING_STATE = R"sql (
94
99
--!syntax_v1
95
100
DECLARE $Assignments AS List<Struct<MemberId: Utf8, Assignment: Bytes>>;
96
101
DECLARE $ConsumerGroup AS Utf8;
97
102
DECLARE $Database AS Utf8;
98
103
DECLARE $Generation AS Uint64;
99
104
DECLARE $State AS Uint64;
105
+ DECLARE $LastHeartbeat AS Datetime;
100
106
101
- UPSERT INTO `/Root/.metadata/kafka_consumer_members `
107
+ UPSERT INTO `%s `
102
108
SELECT
103
109
item.MemberId AS member_id,
104
110
item.Assignment AS assignment,
@@ -107,115 +113,115 @@ const TString UPSERT_ASSIGNMENTS_AND_SET_WORKING_STATE = R"(
107
113
$Generation AS generation
108
114
FROM AS_TABLE($Assignments) AS item;
109
115
110
- UPDATE `/Root/.metadata/kafka_consumer_groups `
116
+ UPDATE `%s `
111
117
SET
112
118
state = $State,
113
- last_heartbeat_time = CurrentUtcDateTime()
119
+ last_heartbeat_time = $LastHeartbeat
114
120
WHERE consumer_group = $ConsumerGroup
115
121
AND database = $Database;
116
- )" ;
122
+ )sql " ;
117
123
118
- const TString UPDATE_GROUPS_AND_SELECT_WORKER_STATES = R"(
124
+ const TString UPDATE_GROUPS_AND_SELECT_WORKER_STATES = R"sql (
119
125
--!syntax_v1
120
126
DECLARE $ConsumerGroup AS Utf8;
121
127
DECLARE $State AS Uint64;
122
128
DECLARE $Generation AS Uint64;
123
129
DECLARE $Database AS Utf8;
130
+ DECLARE $LastHeartbeat AS Datetime;
124
131
125
- UPDATE `/Root/.metadata/kafka_consumer_groups `
132
+ UPDATE `%s `
126
133
SET
127
134
state = $State,
128
- last_heartbeat_time = CurrentUtcDateTime()
135
+ last_heartbeat_time = $LastHeartbeat
129
136
WHERE consumer_group = $ConsumerGroup
130
137
AND database = $Database;
131
138
132
139
SELECT worker_state_proto, member_id
133
- FROM `/Root/.metadata/kafka_consumer_members `
140
+ FROM `%s `
134
141
WHERE consumer_group = $ConsumerGroup
135
142
AND generation = $Generation
136
143
AND database = $Database;
137
- )" ;
144
+ )sql " ;
138
145
139
- const TString CHECK_GROUP_STATE = R"(
146
+ const TString CHECK_GROUP_STATE = R"sql (
140
147
--!syntax_v1
141
148
DECLARE $ConsumerGroup AS Utf8;
142
149
DECLARE $Database AS Utf8;
143
150
144
151
SELECT state, generation, master, last_heartbeat_time, consumer_group, database
145
- FROM `/Root/.metadata/kafka_consumer_groups `
152
+ FROM `%s `
146
153
WHERE consumer_group = $ConsumerGroup
147
154
AND database = $Database;
148
- )" ;
155
+ )sql " ;
149
156
150
- const TString FETCH_ASSIGNMENTS = R"(
157
+ const TString FETCH_ASSIGNMENTS = R"sql (
151
158
--!syntax_v1
152
159
DECLARE $ConsumerGroup AS Utf8;
153
160
DECLARE $Generation AS Uint64;
154
161
DECLARE $MemberId AS Utf8;
155
162
DECLARE $Database AS Utf8;
156
163
157
164
SELECT assignment
158
- FROM `/Root/.metadata/kafka_consumer_members `
165
+ FROM `%s `
159
166
WHERE consumer_group = $ConsumerGroup
160
167
AND generation = $Generation
161
168
AND member_id = $MemberId
162
169
AND database = $Database;
163
- )" ;
170
+ )sql " ;
164
171
165
- const TString CHECK_DEAD_MEMBERS = R"(
172
+ const TString CHECK_DEAD_MEMBERS = R"sql (
166
173
--!syntax_v1
167
174
DECLARE $ConsumerGroup AS Utf8;
168
175
DECLARE $Generation AS Uint64;
169
176
DECLARE $Database AS Utf8;
170
177
DECLARE $Deadline AS Datetime;
171
178
172
179
SELECT COUNT(1) as cnt
173
- FROM `/Root/.metadata/kafka_consumer_members `
180
+ FROM `%s `
174
181
WHERE consumer_group = $ConsumerGroup
175
182
AND generation = $Generation
176
183
AND database = $Database
177
184
AND last_heartbeat_time < $Deadline;
178
- )" ;
185
+ )sql " ;
179
186
180
- const TString UPDATE_TTLS = R"(
187
+ const TString UPDATE_TTLS = R"sql (
181
188
--!syntax_v1
182
189
DECLARE $ConsumerGroup AS Utf8;
183
190
DECLARE $Generation AS Uint64;
184
191
DECLARE $MemberId AS Utf8;
185
192
DECLARE $Database AS Utf8;
186
- DECLARE $HeartbeatDeadline AS Datetime;
193
+ DECLARE $LastHeartbeat AS Datetime;
187
194
DECLARE $UpdateGroupHeartbeat AS Bool;
188
195
189
- UPDATE `/Root/.metadata/kafka_consumer_groups `
190
- SET last_heartbeat_time = CurrentUtcDateTime()
196
+ UPDATE `%s `
197
+ SET last_heartbeat_time = $LastHeartbeat
191
198
WHERE consumer_group = $ConsumerGroup
192
199
AND database = $Database
193
200
AND $UpdateGroupHeartbeat = True;
194
201
195
- UPDATE `/Root/.metadata/kafka_consumer_members `
196
- SET last_heartbeat_time = $HeartbeatDeadline
202
+ UPDATE `%s `
203
+ SET last_heartbeat_time = $LastHeartbeat
197
204
WHERE consumer_group = $ConsumerGroup
198
205
AND generation = $Generation
199
206
AND member_id = $MemberId
200
207
AND database = $Database;
201
- )" ;
208
+ )sql " ;
202
209
203
210
204
- const TString UPDATE_TTL_LEAVE_GROUP = R"(
211
+ const TString UPDATE_TTL_LEAVE_GROUP = R"sql (
205
212
--!syntax_v1
206
213
DECLARE $ConsumerGroup AS Utf8;
207
214
DECLARE $MemberId AS Utf8;
208
215
DECLARE $Database AS Utf8;
216
+ DECLARE $LastHeartbeat AS Datetime;
209
217
210
- UPDATE `/Root/.metadata/kafka_consumer_members `
211
- SET last_heartbeat_time = CurrentUtcDateTime() - Interval("PT1H")
218
+ UPDATE `%s `
219
+ SET last_heartbeat_time = $LastHeartbeat
212
220
WHERE consumer_group = $ConsumerGroup
213
221
AND member_id = $MemberId
214
222
AND database = $Database;
215
- )" ;
216
-
223
+ )sql" ;
217
224
218
225
} // namespace NKafka
219
226
220
-
221
227
// savnik check max members count
0 commit comments