|
187 | 187 | $enriched = select e.id as id, |
188 | 188 | $formatTime(DateTime::ParseIso8601(e.ts)) as ts, |
189 | 189 | e.user as user_id, |
| 190 | + u.id as uid, |
190 | 191 | u.name as name, |
191 | 192 | u.age as age |
192 | 193 | from |
|
201 | 202 | [ |
202 | 203 | ( |
203 | 204 | '{"id":1,"ts":"20240701T113344","ev_type":"foo1","user":2}', |
204 | | - '{"id":1,"ts":"11:33:44","user_id":2,"name":"Petr","age":25}', |
| 205 | + '{"id":1,"ts":"11:33:44","uid":2,"user_id":2,"name":"Petr","age":25}', |
205 | 206 | ), |
206 | 207 | ( |
207 | 208 | '{"id":2,"ts":"20240701T112233","ev_type":"foo2","user":1}', |
208 | | - '{"id":2,"ts":"11:22:33","user_id":1,"name":"Anya","age":15}', |
| 209 | + '{"id":2,"ts":"11:22:33","uid":1,"user_id":1,"name":"Anya","age":15}', |
209 | 210 | ), |
210 | 211 | ( |
211 | 212 | '{"id":3,"ts":"20240701T113355","ev_type":"foo3","user":100}', |
212 | | - '{"id":3,"ts":"11:33:55","user_id":100,"name":null,"age":null}', |
| 213 | + '{"id":3,"ts":"11:33:55","uid":null,"user_id":100,"name":null,"age":null}', |
213 | 214 | ), |
214 | 215 | ( |
215 | 216 | '{"id":4,"ts":"20240701T113356","ev_type":"foo4","user":3}', |
216 | | - '{"id":4,"ts":"11:33:56","user_id":3,"name":"Masha","age":17}', |
| 217 | + '{"id":4,"ts":"11:33:56","uid":3,"user_id":3,"name":"Masha","age":17}', |
217 | 218 | ), |
218 | 219 | ( |
219 | 220 | '{"id":5,"ts":"20240701T113357","ev_type":"foo5","user":3}', |
220 | | - '{"id":5,"ts":"11:33:57","user_id":3,"name":"Masha","age":17}', |
| 221 | + '{"id":5,"ts":"11:33:57","uid":3,"user_id":3,"name":"Masha","age":17}', |
221 | 222 | ), |
222 | 223 | ( |
223 | 224 | '{"id":6,"ts":"20240701T112238","ev_type":"foo6","user":1}', |
224 | | - '{"id":6,"ts":"11:22:38","user_id":1,"name":"Anya","age":15}', |
| 225 | + '{"id":6,"ts":"11:22:38","uid":1,"user_id":1,"name":"Anya","age":15}', |
225 | 226 | ), |
226 | 227 | ( |
227 | 228 | '{"id":7,"ts":"20240701T113349","ev_type":"foo7","user":2}', |
228 | | - '{"id":7,"ts":"11:33:49","user_id":2,"name":"Petr","age":25}', |
| 229 | + '{"id":7,"ts":"11:33:49","uid":2,"user_id":2,"name":"Petr","age":25}', |
229 | 230 | ), |
230 | 231 | ] |
231 | 232 | * 1000, |
232 | 233 | ), |
| 234 | + # 5 |
| 235 | + ( |
| 236 | + R''' |
| 237 | + $input = SELECT * FROM myyds.`{input_topic}` |
| 238 | + WITH ( |
| 239 | + FORMAT=json_each_row, |
| 240 | + SCHEMA ( |
| 241 | + id Int32, |
| 242 | + ts String, |
| 243 | + ev_type String, |
| 244 | + user Int32, |
| 245 | + ) |
| 246 | + ) ; |
| 247 | +
|
| 248 | + $enriched = select e.id as id, |
| 249 | + e.user as user_id, |
| 250 | + u.id as uid |
| 251 | + from |
| 252 | + $input as e |
| 253 | + left join {streamlookup} ydb_conn_{table_name}.`users` as u |
| 254 | + on(e.user = u.id) |
| 255 | + ; |
| 256 | +
|
| 257 | + insert into myyds.`{output_topic}` |
| 258 | + select Unwrap(Yson::SerializeJson(Yson::From(TableRow()))) from $enriched; |
| 259 | + ''', |
| 260 | + [ |
| 261 | + ( |
| 262 | + '{"id":1,"ts":"20240701T113344","ev_type":"foo1","user":2}', |
| 263 | + '{"id":1,"uid":2,"user_id":2}', |
| 264 | + ), |
| 265 | + ( |
| 266 | + '{"id":2,"ts":"20240701T112233","ev_type":"foo2","user":1}', |
| 267 | + '{"id":2,"uid":1,"user_id":1}', |
| 268 | + ), |
| 269 | + ( |
| 270 | + '{"id":3,"ts":"20240701T113355","ev_type":"foo3","user":100}', |
| 271 | + '{"id":3,"uid":null,"user_id":100}', |
| 272 | + ), |
| 273 | + ( |
| 274 | + '{"id":4,"ts":"20240701T113356","ev_type":"foo4","user":3}', |
| 275 | + '{"id":4,"uid":3,"user_id":3}', |
| 276 | + ), |
| 277 | + ], |
| 278 | + ), |
233 | 279 | ] |
234 | 280 |
|
235 | 281 |
|
|
0 commit comments