文章目录
五分钟上手Flink MySQL连接器
一、创建数据库表
二、创建session集群
三、源表查询
四、窗口计算
五、结果数据写回数据库
五分钟上手Flink MySQL连接器
MySQL Connector可以将本地或远程的MySQL数据库连接到Flink中,并方便地使用Flink Table API与之交互、捕获数据变更、并将处理结果写回数据库。
本场景将以阿里云实时计算Flink版为基础,使用Flink自带的MySQL Connector连接RDS云数据库实例,并以一个实时商品销售数据统计的例子尝试上手Connector的数据捕获、数据写入等功能。
一、创建数据库表
进入RDS mysql的管理平台DMS。(注意登录的账号需要有读写权限。)
首先创建数据库test。
CREATE DATABASE IF NOT EXISTS test;
点击执行,创建成功后,打开此数据库的SQL Console。
建表语句如下
-- Source Table;
CREATE TABLE `source_table` (`id` int unsigned NOT NULL AUTO_INCREMENT,`good_id` int DEFAULT NULL,`amount` int DEFAULT NULL,`record_time` timestamp NULL DEFAULT NULL,PRIMARY KEY (`id`)
);-- Dimension Table;
CREATE TABLE `dimension_table` (`good_id` int unsigned NOT NULL,`good_name` varchar(256) DEFAULT NULL,`good_price` int DEFAULT NULL,PRIMARY KEY (`good_id`)
);-- Sink Table;
CREATE TABLE `sink_table` (`record_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`good_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`sell_amount` int DEFAULT NULL,PRIMARY KEY (`record_timestamp`)
);
选中后点击执行
执行成功后,返回如下结果
可以在左侧表列表看到对应的表
然后向数据库中插入多条数据,插入代码在下面:
INSERT INTO `dimension_table` (`good_id`, `good_name`, `good_price`)
VALUES(1, 'Cheetah', 53),(2, 'Puma', 46),(3, 'Jaguar', 22),(4, 'Panther', 18),(5, 'Tiger', 99),(6, 'Leopard', 84),(7, 'Snow Leopard', 81),(8, 'Lion', 17),(9, 'Mountain Lion', 19),(10, 'Mavericks', 77),(11, 'Yosemite', 16),(12, 'El Capitan', 16),(13, 'Sierra', 85),(14, 'High Sierra', 87),(15, 'Mojave', 51),(16, 'Catalina', 92),(17, 'Big Sur', 14),(18, 'Monterey', 99),(19, 'Ventura', 15),(20, 'Sonoma', 68);INSERT INTO `source_table` (`id`, `good_id`, `amount`, `record_time`)
VALUES(1, 16, 19, '2023-06-09 11:06:34'),(2, 8, 20, '2023-06-09 11:06:35'),(3, 19, 24, '2023-06-09 11:06:36'),(4, 17, 23, '2023-06-09 11:06:37'),(5, 2, 25, '2023-06-09 11:06:40'),(6, 10, 28, '2023-06-09 11:06:44'),(7, 20, 26, '2023-06-09 11:06:48'),(8, 18, 19, '2023-06-09 11:06:49'),(9, 16, 21, '2023-06-09 11:06:53'),(10, 7, 19, '2023-06-09 11:06:55'),(11, 7, 20, '2023-06-09 11:06:59'),(12, 17, 21, '2023-06-09 11:07:03'),(13, 2, 19, '2023-06-09 11:07:05'),(14, 5, 22, '2023-06-09 11:07:08'),(15, 10, 21, '2023-06-09 11:07:12'),(16, 2, 29, '2023-06-09 11:07:16'),(17, 6, 27, '2023-06-09 11:07:19'),(18, 16, 23, '2023-06-09 11:07:23'),(19, 8, 20, '2023-06-09 11:07:24'),(20, 8, 31, '2023-06-09 11:07:26'),(21, 6, 30, '2023-06-09 11:07:29'),(22, 7, 21, '2023-06-09 11:07:32'),(23, 2, 22, '2023-06-09 11:07:33'),(24, 9, 23, '2023-06-09 11:07:37'),(25, 19, 29, '2023-06-09 11:07:41'),(26, 16, 31, '2023-06-09 11:07:45'),(27, 13, 19, '2023-06-09 11:07:48'),(28, 6, 20, '2023-06-09 11:07:50'),(29, 4, 20, '2023-06-09 11:07:52'),(30, 4, 25, '2023-06-09 11:07:54'),(31, 4, 20, '2023-06-09 11:07:55'),(32, 4, 21, '2023-06-09 11:07:58'),(33, 11, 24, '2023-06-09 11:07:59'),(34, 1, 24, '2023-06-09 11:08:03'),(35, 7, 31, '2023-06-09 11:08:06'),(36, 2, 27, '2023-06-09 11:08:10'),(37, 19, 26, '2023-06-09 11:08:13'),(38, 3, 23, '2023-06-09 11:08:15'),(39, 11, 20, '2023-06-09 11:08:19'),(40, 20, 21, '2023-06-09 11:08:23'),(41, 7, 22, '2023-06-09 11:08:25'),(42, 5, 21, '2023-06-09 11:08:29'),(43, 7, 22, '2023-06-09 11:08:30'),(44, 11, 28, '2023-06-09 11:08:31'),(45, 2, 19, '2023-06-09 11:08:32'),(46, 1, 26, '2023-06-09 11:08:36'),(47, 3, 31, '2023-06-09 11:08:39'),(48, 20, 20, '2023-06-09 11:08:41'),(49, 6, 24, '2023-06-09 11:08:43'),(50, 10, 28, '2023-06-09 11:08:44'),(51, 11, 21, '2023-06-09 11:08:48'),(52, 9, 20, '2023-06-09 11:08:52'),(53, 5, 28, '2023-06-09 11:08:53'),(54, 8, 28, '2023-06-09 11:08:54'),(55, 15, 26, '2023-06-09 11:08:58'),(56, 3, 26, '2023-06-09 11:09:01'),(57, 19, 20, '2023-06-09 11:09:02'),(58, 6, 22, '2023-06-09 11:09:03'),(59, 1, 22, '2023-06-09 11:09:05'),(60, 19, 25, '2023-06-09 11:09:08'),(61, 17, 28, '2023-06-09 11:09:11'),(62, 5, 25, '2023-06-09 11:09:12'),(63, 16, 30, '2023-06-09 11:09:16'),(64, 1, 23, '2023-06-09 11:09:17'),(65, 1, 22, '2023-06-09 11:09:21'),(66, 3, 19, '2023-06-09 11:09:22'),(67, 10, 19, '2023-06-09 11:09:24'),(68, 12, 20, '2023-06-09 11:09:26'),(69, 18, 20, '2023-06-09 11:09:29'),(70, 16, 21, '2023-06-09 11:09:32'),(71, 4, 27, '2023-06-09 11:09:33'),(72, 14, 31, '2023-06-09 11:09:37'),(73, 15, 30, '2023-06-09 11:09:40'),(74, 8, 24, '2023-06-09 11:09:43'),(75, 2, 24, '2023-06-09 11:09:44'),(76, 4, 31, '2023-06-09 11:09:45'),(77, 15, 25, '2023-06-09 11:09:49'),(78, 1, 28, '2023-06-09 11:09:53'),(79, 9, 29, '2023-06-09 11:09:56'),(80, 3, 30, '2023-06-09 11:09:57'),(81, 9, 20, '2023-06-09 11:09:58'),(82, 9, 23, '2023-06-09 11:10:01'),(83, 2, 30, '2023-06-09 11:10:03'),(84, 16, 26, '2023-06-09 11:10:04'),(85, 17, 21, '2023-06-09 11:10:05'),(86, 14, 25, '2023-06-09 11:10:08'),(87, 3, 22, '2023-06-09 11:10:10'),(88, 14, 24, '2023-06-09 11:10:11'),(89, 9, 21, '2023-06-09 11:10:12'),(90, 8, 19, '2023-06-09 11:10:16'),(91, 20, 28, '2023-06-09 11:10:17'),(92, 15, 30, '2023-06-09 11:10:19'),(93, 6, 21, '2023-06-09 11:10:21'),(94, 10, 26, '2023-06-09 11:10:22'),(95, 10, 30, '2023-06-09 11:10:25'),(96, 5, 25, '2023-06-09 11:10:29'),(97, 7, 19, '2023-06-09 11:10:33'),(98, 4, 19, '2023-06-09 11:10:36'),(99, 5, 28, '2023-06-09 11:10:38'),(100, 19, 19, '2023-06-09 11:10:41'),(101, 18, 27, '2023-06-09 11:10:44'),(102, 19, 23, '2023-06-09 11:10:46'),(103, 9, 28, '2023-06-09 11:10:47'),(104, 15, 19, '2023-06-09 11:10:49'),(105, 9, 19, '2023-06-09 11:10:51'),(106, 3, 23, '2023-06-09 11:10:52'),(107, 12, 28, '2023-06-09 11:10:54'),(108, 5, 25, '2023-06-09 11:10:56'),(109, 7, 30, '2023-06-09 11:11:00'),(110, 13, 28, '2023-06-09 11:11:01'),(111, 8, 29, '2023-06-09 11:11:03'),(112, 7, 26, '2023-06-09 11:11:04'),(113, 2, 23, '2023-06-09 11:11:07'),(114, 5, 25, '2023-06-09 11:11:08'),(115, 4, 27, '2023-06-09 11:11:10'),(116, 7, 25, '2023-06-09 11:11:12'),(117, 17, 26, '2023-06-09 11:11:14'),(118, 6, 31, '2023-06-09 11:11:17'),(119, 6, 27, '2023-06-09 11:11:20'),(120, 20, 30, '2023-06-09 11:11:23'),(121, 1, 24, '2023-06-09 11:11:26'),(122, 1, 27, '2023-06-09 11:11:30'),(123, 3, 28, '2023-06-09 11:11:31'),(124, 20, 30, '2023-06-09 11:11:32'),(125, 1, 31, '2023-06-09 11:11:33'),(126, 9, 21, '2023-06-09 11:11:37'),(127, 12, 24, '2023-06-09 11:11:39'),(128, 17, 30, '2023-06-09 11:11:40'),(129, 13, 26, '2023-06-09 11:11:43'),(130, 5, 23, '2023-06-09 11:11:44'),(131, 1, 28, '2023-06-09 11:11:45'),(132, 16, 22, '2023-06-09 11:11:46'),(133, 8, 21, '2023-06-09 11:11:47'),(134, 15, 20, '2023-06-09 11:11:50'),(135, 8, 28, '2023-06-09 11:11:53'),(136, 16, 25, '2023-06-09 11:11:57'),(137, 14, 31, '2023-06-09 11:11:58'),(138, 11, 25, '2023-06-09 11:12:00'),(139, 6, 31, '2023-06-09 11:12:03'),(140, 1, 27, '2023-06-09 11:12:07'),(141, 11, 21, '2023-06-09 11:12:09'),(142, 8, 24, '2023-06-09 11:12:12'),(143, 11, 24, '2023-06-09 11:12:14'),(144, 9, 24, '2023-06-09 11:12:18'),(145, 16, 23, '2023-06-09 11:12:21'),(146, 4, 21, '2023-06-09 11:12:25'),(147, 19, 25, '2023-06-09 11:12:29'),(148, 5, 22, '2023-06-09 11:12:32'),(149, 14, 28, '2023-06-09 11:12:34'),(150, 8, 25, '2023-06-09 11:12:35'),(151, 10, 30, '2023-06-09 11:12:39'),(152, 4, 24, '2023-06-09 11:12:41'),(153, 12, 29, '2023-06-09 11:12:43'),(154, 9, 20, '2023-06-09 11:12:47'),(155, 13, 19, '2023-06-09 11:12:48'),(156, 11, 20, '2023-06-09 11:12:50'),(157, 5, 22, '2023-06-09 11:12:54'),(158, 16, 28, '2023-06-09 11:12:57'),(159, 2, 21, '2023-06-09 11:13:01'),(160, 11, 19, '2023-06-09 11:13:03'),(161, 15, 19, '2023-06-09 11:13:04'),(162, 4, 24, '2023-06-09 11:13:06'),(163, 11, 27, '2023-06-09 11:13:08'),(164, 12, 20, '2023-06-09 11:13:09'),(165, 6, 29, '2023-06-09 11:13:11'),(166, 11, 21, '2023-06-09 11:13:15'),(167, 10, 28, '2023-06-09 11:13:17'),(168, 15, 21, '2023-06-09 11:13:18'),(169, 1, 20, '2023-06-09 11:13:22'),(170, 15, 24, '2023-06-09 11:13:24'),(171, 1, 26, '2023-06-09 11:13:28'),(172, 5, 23, '2023-06-09 11:13:31'),(173, 4, 23, '2023-06-09 11:13:33'),(174, 13, 30, '2023-06-09 11:13:37'),(175, 12, 28, '2023-06-09 11:13:41'),(176, 18, 27, '2023-06-09 11:13:42'),(177, 10, 29, '2023-06-09 11:13:45'),(178, 9, 21, '2023-06-09 11:13:47'),(179, 19, 20, '2023-06-09 11:13:50'),(180, 1, 21, '2023-06-09 11:13:54'),(181, 1, 31, '2023-06-09 11:13:58'),(182, 11, 30, '2023-06-09 11:13:59'),(183, 6, 21, '2023-06-09 11:14:02'),(184, 2, 24, '2023-06-09 11:14:04'),(185, 18, 29, '2023-06-09 11:14:05'),(186, 14, 21, '2023-06-09 11:14:08'),(187, 5, 21, '2023-06-09 11:14:10'),(188, 2, 30, '2023-06-09 11:14:13'),(189, 1, 27, '2023-06-09 11:14:14'),(190, 18, 27, '2023-06-09 11:14:17'),(191, 10, 26, '2023-06-09 11:14:21'),(192, 16, 29, '2023-06-09 11:14:23'),(193, 2, 19, '2023-06-09 11:14:24'),(194, 13, 30, '2023-06-09 11:14:28'),(195, 16, 20, '2023-06-09 11:14:29'),(196, 6, 27, '2023-06-09 11:14:31'),(197, 19, 27, '2023-06-09 11:14:33'),(198, 8, 29, '2023-06-09 11:14:37'),(199, 16, 28, '2023-06-09 11:14:39'),(200, 14, 25, '2023-06-09 11:14:40'),(201, 3, 29, '2023-06-09 11:14:42'),(202, 1, 23, '2023-06-09 11:14:44'),(203, 10, 19, '2023-06-09 11:14:47'),(204, 14, 27, '2023-06-09 11:14:48'),(205, 2, 26, '2023-06-09 11:14:51'),(206, 19, 24, '2023-06-09 11:14:55'),(207, 7, 19, '2023-06-09 11:14:57'),(208, 5, 24, '2023-06-09 11:14:59'),(209, 20, 24, '2023-06-09 11:15:00'),(210, 20, 25, '2023-06-09 11:15:02'),(211, 12, 27, '2023-06-09 11:15:03'),(212, 14, 31, '2023-06-09 11:15:06'),(213, 1, 22, '2023-06-09 11:15:07'),(214, 3, 22, '2023-06-09 11:15:09'),(215, 16, 27, '2023-06-09 11:15:10'),(216, 10, 19, '2023-06-09 11:15:14'),(217, 7, 30, '2023-06-09 11:15:15'),(218, 2, 22, '2023-06-09 11:15:17'),(219, 13, 20, '2023-06-09 11:15:18'),(220, 11, 21, '2023-06-09 11:15:22'),(221, 15, 26, '2023-06-09 11:15:25'),(222, 8, 25, '2023-06-09 11:15:30'),(223, 15, 29, '2023-06-09 11:15:32'),(224, 13, 24, '2023-06-09 11:15:36'),(225, 20, 21, '2023-06-09 11:15:40'),(226, 9, 27, '2023-06-09 11:15:42'),(227, 18, 25, '2023-06-09 11:15:44'),(228, 3, 19, '2023-06-09 11:15:45'),(229, 19, 24, '2023-06-09 11:15:46'),(230, 13, 26, '2023-06-09 11:15:50'),(231, 10, 30, '2023-06-09 11:15:54'),(232, 18, 19, '2023-06-09 11:15:57'),(233, 10, 27, '2023-06-09 11:15:59'),(234, 8, 31, '2023-06-09 11:16:02'),(235, 6, 25, '2023-06-09 11:16:06'),(236, 1, 19, '2023-06-09 11:16:08'),(237, 12, 31, '2023-06-09 11:16:11'),(238, 10, 25, '2023-06-09 11:16:14'),(239, 8, 24, '2023-06-09 11:16:17'),(240, 16, 28, '2023-06-09 11:16:19'),(241, 19, 23, '2023-06-09 11:16:20'),(242, 18, 30, '2023-06-09 11:16:23'),(243, 9, 25, '2023-06-09 11:16:27'),(244, 17, 27, '2023-06-09 11:16:30'),(245, 17, 24, '2023-06-09 11:16:34'),(246, 1, 29, '2023-06-09 11:16:35'),(247, 3, 23, '2023-06-09 11:16:39'),(248, 1, 25, '2023-06-09 11:16:41'),(249, 14, 25, '2023-06-09 11:16:45'),(250, 17, 29, '2023-06-09 11:16:49'),(251, 15, 26, '2023-06-09 11:16:50'),(252, 6, 30, '2023-06-09 11:16:52'),(253, 13, 25, '2023-06-09 11:16:53'),(254, 20, 27, '2023-06-09 11:16:56'),(255, 19, 30, '2023-06-09 11:17:00'),(256, 20, 29, '2023-06-09 11:17:03'),(257, 4, 26, '2023-06-09 11:17:04'),(258, 20, 23, '2023-06-09 11:17:05'),(259, 8, 25, '2023-06-09 11:17:08'),(260, 3, 24, '2023-06-09 11:17:10'),(261, 5, 29, '2023-06-09 11:17:13'),(262, 12, 31, '2023-06-09 11:17:15'),(263, 2, 21, '2023-06-09 11:17:16'),(264, 2, 31, '2023-06-09 11:17:18'),(265, 6, 30, '2023-06-09 11:17:20'),(266, 18, 20, '2023-06-09 11:17:23'),(267, 8, 20, '2023-06-09 11:17:24'),(268, 18, 30, '2023-06-09 11:17:25'),(269, 9, 28, '2023-06-09 11:17:27'),(270, 12, 28, '2023-06-09 11:17:30'),(271, 16, 29, '2023-06-09 11:17:31'),(272, 20, 30, '2023-06-09 11:17:35'),(273, 7, 21, '2023-06-09 11:17:39'),(274, 4, 30, '2023-06-09 11:17:42'),(275, 6, 26, '2023-06-09 11:17:44'),(276, 7, 19, '2023-06-09 11:17:45'),(277, 19, 31, '2023-06-09 11:17:46'),(278, 16, 30, '2023-06-09 11:17:47'),(279, 19, 30, '2023-06-09 11:17:49'),(280, 13, 21, '2023-06-09 11:17:52'),(281, 18, 22, '2023-06-09 11:17:54'),(282, 12, 26, '2023-06-09 11:17:57'),(283, 3, 22, '2023-06-09 11:18:01'),(284, 1, 22, '2023-06-09 11:18:02'),(285, 13, 23, '2023-06-09 11:18:04'),(286, 20, 19, '2023-06-09 11:18:09'),(287, 11, 27, '2023-06-09 11:18:11'),(288, 15, 24, '2023-06-09 11:18:13'),(289, 17, 28, '2023-06-09 11:18:16'),(290, 19, 23, '2023-06-09 11:18:19'),(291, 4, 28, '2023-06-09 11:18:20'),(292, 8, 25, '2023-06-09 11:18:22'),(293, 9, 29, '2023-06-09 11:18:23'),(294, 1, 23, '2023-06-09 11:18:27'),(295, 15, 27, '2023-06-09 11:18:29'),(296, 2, 24, '2023-06-09 11:18:32'),(297, 18, 30, '2023-06-09 11:18:34'),(298, 9, 27, '2023-06-09 11:18:35'),(299, 2, 19, '2023-06-09 11:18:36'),(300, 10, 20, '2023-06-09 11:18:39'),(301, 17, 28, '2023-06-09 11:18:43'),(302, 7, 30, '2023-06-09 11:18:45'),(303, 14, 30, '2023-06-09 11:18:48'),(304, 11, 30, '2023-06-09 11:18:52'),(305, 8, 29, '2023-06-09 11:18:56'),(306, 11, 23, '2023-06-09 11:19:00'),(307, 10, 23, '2023-06-09 11:19:04'),(308, 14, 26, '2023-06-09 11:19:07'),(309, 11, 25, '2023-06-09 11:19:09'),(310, 6, 22, '2023-06-09 11:19:11'),(311, 12, 27, '2023-06-09 11:19:15'),(312, 3, 22, '2023-06-09 11:19:17'),(313, 1, 28, '2023-06-09 11:19:18'),(314, 18, 24, '2023-06-09 11:19:20'),(315, 4, 20, '2023-06-09 11:19:24'),(316, 11, 29, '2023-06-09 11:19:25'),(317, 11, 30, '2023-06-09 11:19:27'),(318, 20, 21, '2023-06-09 11:19:31'),(319, 5, 24, '2023-06-09 11:19:33'),(320, 20, 20, '2023-06-09 11:19:37'),(321, 8, 28, '2023-06-09 11:19:41'),(322, 10, 31, '2023-06-09 11:19:43'),(323, 15, 19, '2023-06-09 11:19:47'),(324, 19, 29, '2023-06-09 11:19:48'),(325, 14, 19, '2023-06-09 11:19:51'),(326, 3, 23, '2023-06-09 11:19:52'),(327, 15, 26, '2023-06-09 11:19:57'),(328, 12, 23, '2023-06-09 11:19:58'),(329, 7, 28, '2023-06-09 11:20:01'),(330, 20, 29, '2023-06-09 11:20:05'),(331, 17, 26, '2023-06-09 11:20:09'),(332, 10, 19, '2023-06-09 11:20:13'),(333, 18, 31, '2023-06-09 11:20:16'),(334, 4, 23, '2023-06-09 11:20:18'),(335, 7, 21, '2023-06-09 11:20:19'),(336, 9, 22, '2023-06-09 11:20:23'),(337, 6, 27, '2023-06-09 11:20:26'),(338, 19, 28, '2023-06-09 11:20:30'),(339, 19, 21, '2023-06-09 11:20:31'),(340, 13, 25, '2023-06-09 11:20:33'),(341, 17, 26, '2023-06-09 11:20:37'),(342, 19, 27, '2023-06-09 11:20:41'),(343, 20, 20, '2023-06-09 11:20:42'),(344, 10, 24, '2023-06-09 11:20:43'),(345, 12, 23, '2023-06-09 11:20:46'),(346, 9, 19, '2023-06-09 11:20:47'),(347, 15, 21, '2023-06-09 11:20:50'),(348, 18, 19, '2023-06-09 11:20:54'),(349, 4, 26, '2023-06-09 11:20:56'),(350, 3, 24, '2023-06-09 11:20:57'),(351, 18, 24, '2023-06-09 11:20:58'),(352, 17, 25, '2023-06-09 11:21:02'),(353, 16, 31, '2023-06-09 11:21:06'),(354, 1, 24, '2023-06-09 11:21:07'),(355, 13, 30, '2023-06-09 11:21:11'),(356, 3, 30, '2023-06-09 11:21:13'),(357, 3, 20, '2023-06-09 11:21:16'),(358, 10, 22, '2023-06-09 11:21:19'),(359, 17, 27, '2023-06-09 11:21:20'),(360, 13, 22, '2023-06-09 11:21:22'),(361, 15, 22, '2023-06-09 11:21:25'),(362, 17, 30, '2023-06-09 11:21:26'),(363, 2, 28, '2023-06-09 11:21:28'),(364, 9, 24, '2023-06-09 11:21:30'),(365, 9, 23, '2023-06-09 11:21:32'),(366, 6, 27, '2023-06-09 11:21:34'),(367, 17, 26, '2023-06-09 11:21:38'),(368, 8, 30, '2023-06-09 11:21:42'),(369, 3, 29, '2023-06-09 11:21:45'),(370, 14, 25, '2023-06-09 11:21:47'),(371, 9, 25, '2023-06-09 11:21:51'),(372, 13, 30, '2023-06-09 11:21:54'),(373, 18, 19, '2023-06-09 11:21:58'),(374, 6, 21, '2023-06-09 11:22:00'),(375, 1, 24, '2023-06-09 11:22:01'),(376, 16, 23, '2023-06-09 11:22:02'),(377, 17, 23, '2023-06-09 11:22:03'),(378, 5, 23, '2023-06-09 11:22:06'),(379, 17, 27, '2023-06-09 11:22:09'),(380, 20, 30, '2023-06-09 11:22:13'),(381, 19, 28, '2023-06-09 11:22:14'),(382, 6, 24, '2023-06-09 11:22:18'),(383, 17, 28, '2023-06-09 11:22:21'),(384, 14, 26, '2023-06-09 11:22:24'),(385, 14, 22, '2023-06-09 11:22:26'),(386, 10, 27, '2023-06-09 11:22:30'),(387, 12, 28, '2023-06-09 11:22:31'),(388, 13, 31, '2023-06-09 11:22:35'),(389, 9, 25, '2023-06-09 11:22:39'),(390, 17, 27, '2023-06-09 11:22:40'),(391, 13, 27, '2023-06-09 11:22:41'),(392, 4, 26, '2023-06-09 11:22:42'),(393, 9, 26, '2023-06-09 11:22:43'),(394, 11, 27, '2023-06-09 11:22:46'),(395, 18, 22, '2023-06-09 11:22:48'),(396, 4, 27, '2023-06-09 11:22:52'),(397, 1, 26, '2023-06-09 11:22:56'),(398, 5, 27, '2023-06-09 11:22:58'),(399, 8, 20, '2023-06-09 11:23:02'),(400, 11, 25, '2023-06-09 11:23:04'),(401, 16, 22, '2023-06-09 11:23:05'),(402, 4, 22, '2023-06-09 11:23:07'),(403, 14, 23, '2023-06-09 11:23:11'),(404, 2, 27, '2023-06-09 11:23:12'),(405, 7, 24, '2023-06-09 11:23:13'),(406, 3, 30, '2023-06-09 11:23:16'),(407, 14, 25, '2023-06-09 11:23:17'),(408, 12, 28, '2023-06-09 11:23:21'),(409, 15, 25, '2023-06-09 11:23:24'),(410, 8, 22, '2023-06-09 11:23:26'),(411, 6, 30, '2023-06-09 11:23:29'),(412, 15, 22, '2023-06-09 11:23:31'),(413, 15, 19, '2023-06-09 11:23:32'),(414, 5, 29, '2023-06-09 11:23:36'),(415, 1, 31, '2023-06-09 11:23:38'),(416, 18, 28, '2023-06-09 11:23:39'),(417, 9, 19, '2023-06-09 11:23:43'),(418, 3, 22, '2023-06-09 11:23:45'),(419, 4, 19, '2023-06-09 11:23:47'),(420, 17, 29, '2023-06-09 11:23:48'),(421, 17, 22, '2023-06-09 11:23:50'),(422, 15, 30, '2023-06-09 11:23:53'),(423, 13, 21, '2023-06-09 11:23:55'),(424, 4, 29, '2023-06-09 11:23:56'),(425, 10, 27, '2023-06-09 11:23:58'),(426, 9, 24, '2023-06-09 11:24:01'),(427, 11, 24, '2023-06-09 11:24:04'),(428, 5, 28, '2023-06-09 11:24:08'),(429, 14, 29, '2023-06-09 11:24:13'),(430, 3, 20, '2023-06-09 11:24:14'),(431, 8, 22, '2023-06-09 11:24:17'),(432, 1, 30, '2023-06-09 11:24:18'),(433, 13, 19, '2023-06-09 11:24:21'),(434, 1, 23, '2023-06-09 11:24:25'),(435, 6, 30, '2023-06-09 11:24:29'),(436, 17, 26, '2023-06-09 11:24:33'),(437, 8, 23, '2023-06-09 11:24:34'),(438, 4, 29, '2023-06-09 11:24:36'),(439, 9, 31, '2023-06-09 11:24:37'),(440, 18, 23, '2023-06-09 11:24:40'),(441, 11, 19, '2023-06-09 11:24:43'),(442, 12, 25, '2023-06-09 11:24:45'),(443, 7, 26, '2023-06-09 11:24:47'),(444, 8, 31, '2023-06-09 11:24:51'),(445, 13, 23, '2023-06-09 11:24:55'),(446, 13, 22, '2023-06-09 11:24:56'),(447, 7, 27, '2023-06-09 11:25:00'),(448, 8, 21, '2023-06-09 11:25:01'),(449, 1, 25, '2023-06-09 11:25:04'),(450, 14, 19, '2023-06-09 11:25:06'),(451, 12, 29, '2023-06-09 11:25:08'),(452, 16, 26, '2023-06-09 11:25:10'),(453, 6, 30, '2023-06-09 11:25:14'),(454, 19, 25, '2023-06-09 11:25:15'),(455, 15, 24, '2023-06-09 11:25:17'),(456, 4, 19, '2023-06-09 11:25:21'),(457, 20, 31, '2023-06-09 11:25:25'),(458, 14, 31, '2023-06-09 11:25:29'),(459, 17, 24, '2023-06-09 11:25:32'),(460, 13, 26, '2023-06-09 11:25:35'),(461, 17, 28, '2023-06-09 11:25:36'),(462, 9, 23, '2023-06-09 11:25:40'),(463, 5, 29, '2023-06-09 11:25:42'),(464, 9, 28, '2023-06-09 11:25:43'),(465, 13, 25, '2023-06-09 11:25:44'),(466, 15, 19, '2023-06-09 11:25:47'),(467, 2, 19, '2023-06-09 11:25:49'),(468, 15, 29, '2023-06-09 11:25:53'),(469, 18, 21, '2023-06-09 11:25:55'),(470, 14, 21, '2023-06-09 11:25:56'),(471, 11, 28, '2023-06-09 11:25:57'),(472, 13, 19, '2023-06-09 11:25:58'),(473, 8, 23, '2023-06-09 11:25:59'),(474, 16, 24, '2023-06-09 11:26:01'),(475, 18, 31, '2023-06-09 11:26:05'),(476, 12, 20, '2023-06-09 11:26:08'),(477, 19, 30, '2023-06-09 11:26:12'),(478, 11, 28, '2023-06-09 11:26:15'),(479, 9, 30, '2023-06-09 11:26:18'),(480, 12, 29, '2023-06-09 11:26:22'),(481, 4, 29, '2023-06-09 11:26:25'),(482, 13, 31, '2023-06-09 11:26:27'),(483, 15, 23, '2023-06-09 11:26:31'),(484, 6, 27, '2023-06-09 11:26:35'),(485, 14, 31, '2023-06-09 11:26:36'),(486, 16, 30, '2023-06-09 11:26:40'),(487, 3, 22, '2023-06-09 11:26:43'),(488, 17, 19, '2023-06-09 11:26:46'),(489, 8, 19, '2023-06-09 11:26:48'),(490, 1, 25, '2023-06-09 11:26:49'),(491, 13, 31, '2023-06-09 11:26:52'),(492, 10, 21, '2023-06-09 11:26:54'),(493, 9, 22, '2023-06-09 11:26:58'),(494, 16, 20, '2023-06-09 11:27:00'),(495, 11, 19, '2023-06-09 11:27:04'),(496, 10, 27, '2023-06-09 11:27:05'),(497, 14, 22, '2023-06-09 11:27:07'),(498, 12, 30, '2023-06-09 11:27:09'),(499, 19, 20, '2023-06-09 11:27:13'),(500, 11, 23, '2023-06-09 11:27:14'),(501, 10, 30, '2023-06-09 11:27:17'),(502, 18, 21, '2023-06-09 11:27:18'),(503, 15, 24, '2023-06-09 11:27:19'),(504, 17, 23, '2023-06-09 11:27:23'),(505, 7, 27, '2023-06-09 11:27:25'),(506, 9, 24, '2023-06-09 11:27:29'),(507, 6, 24, '2023-06-09 11:27:30'),(508, 14, 20, '2023-06-09 11:27:34'),(509, 8, 23, '2023-06-09 11:27:35'),(510, 9, 27, '2023-06-09 11:27:36'),(511, 7, 22, '2023-06-09 11:27:39'),(512, 13, 21, '2023-06-09 11:27:40'),(513, 9, 30, '2023-06-09 11:27:41'),(514, 12, 25, '2023-06-09 11:27:42'),(515, 17, 22, '2023-06-09 11:27:45'),(516, 6, 20, '2023-06-09 11:27:47'),(517, 11, 20, '2023-06-09 11:27:50'),(518, 15, 25, '2023-06-09 11:27:53'),(519, 15, 27, '2023-06-09 11:27:55'),(520, 9, 27, '2023-06-09 11:27:57'),(521, 2, 21, '2023-06-09 11:28:01'),(522, 17, 24, '2023-06-09 11:28:03'),(523, 10, 29, '2023-06-09 11:28:06'),(524, 16, 24, '2023-06-09 11:28:09'),(525, 5, 28, '2023-06-09 11:28:11'),(526, 11, 22, '2023-06-09 11:28:13'),(527, 13, 19, '2023-06-09 11:28:16'),(528, 13, 30, '2023-06-09 11:28:18'),(529, 5, 21, '2023-06-09 11:28:22'),(530, 19, 25, '2023-06-09 11:28:24'),(531, 1, 27, '2023-06-09 11:28:28'),(532, 19, 21, '2023-06-09 11:28:32'),(533, 7, 25, '2023-06-09 11:28:35'),(534, 2, 25, '2023-06-09 11:28:37'),(535, 18, 24, '2023-06-09 11:28:41'),(536, 8, 27, '2023-06-09 11:28:42'),(537, 9, 30, '2023-06-09 11:28:44'),(538, 18, 31, '2023-06-09 11:28:47'),(539, 4, 25, '2023-06-09 11:28:49'),(540, 5, 27, '2023-06-09 11:28:50'),(541, 4, 20, '2023-06-09 11:28:53'),(542, 20, 27, '2023-06-09 11:28:55'),(543, 7, 20, '2023-06-09 11:28:58'),(544, 2, 26, '2023-06-09 11:28:59'),(545, 8, 21, '2023-06-09 11:29:01'),(546, 10, 25, '2023-06-09 11:29:05'),(547, 11, 31, '2023-06-09 11:29:10'),(548, 14, 22, '2023-06-09 11:29:11'),(549, 5, 31, '2023-06-09 11:29:15'),(550, 5, 21, '2023-06-09 11:29:19'),(551, 8, 29, '2023-06-09 11:29:22'),(552, 12, 30, '2023-06-09 11:29:26'),(553, 8, 22, '2023-06-09 11:29:27'),(554, 5, 28, '2023-06-09 11:29:29'),(555, 4, 23, '2023-06-09 11:29:32'),(556, 12, 21, '2023-06-09 11:29:35'),(557, 14, 23, '2023-06-09 11:29:36'),(558, 10, 26, '2023-06-09 11:29:38'),(559, 2, 31, '2023-06-09 11:29:42'),(560, 18, 22, '2023-06-09 11:29:44'),(561, 3, 22, '2023-06-09 11:29:45'),(562, 2, 31, '2023-06-09 11:29:47'),(563, 6, 21, '2023-06-09 11:29:51'),(564, 5, 30, '2023-06-09 11:29:55'),(565, 5, 24, '2023-06-09 11:29:56'),(566, 6, 24, '2023-06-09 11:30:00'),(567, 14, 25, '2023-06-09 11:30:03'),(568, 8, 20, '2023-06-09 11:30:05'),(569, 12, 20, '2023-06-09 11:30:08'),(570, 5, 20, '2023-06-09 11:30:10'),(571, 20, 24, '2023-06-09 11:30:14'),(572, 8, 22, '2023-06-09 11:30:16'),(573, 2, 24, '2023-06-09 11:30:20'),(574, 14, 20, '2023-06-09 11:30:22'),(575, 1, 30, '2023-06-09 11:30:25'),(576, 13, 31, '2023-06-09 11:30:26'),(577, 4, 21, '2023-06-09 11:30:30'),(578, 11, 27, '2023-06-09 11:30:31'),(579, 19, 20, '2023-06-09 11:30:32'),(580, 13, 28, '2023-06-09 11:30:36'),(581, 6, 22, '2023-06-09 11:30:38'),(582, 10, 23, '2023-06-09 11:30:42'),(583, 11, 27, '2023-06-09 11:30:43'),(584, 5, 25, '2023-06-09 11:30:46'),(585, 2, 20, '2023-06-09 11:30:47'),(586, 1, 21, '2023-06-09 11:30:49'),(587, 11, 27, '2023-06-09 11:30:51'),(588, 11, 23, '2023-06-09 11:30:56'),(589, 7, 20, '2023-06-09 11:30:59'),(590, 10, 24, '2023-06-09 11:31:03'),(591, 7, 20, '2023-06-09 11:31:05'),(592, 17, 21, '2023-06-09 11:31:06'),(593, 17, 20, '2023-06-09 11:31:08'),(594, 5, 21, '2023-06-09 11:31:09'),(595, 16, 29, '2023-06-09 11:31:10'),(596, 2, 20, '2023-06-09 11:31:14'),(597, 4, 25, '2023-06-09 11:31:15'),(598, 11, 19, '2023-06-09 11:31:16'),(599, 5, 30, '2023-06-09 11:31:20'),(600, 4, 26, '2023-06-09 11:31:23'),(601, 7, 23, '2023-06-09 11:31:24'),(602, 17, 24, '2023-06-09 11:31:25'),(603, 2, 25, '2023-06-09 11:31:26'),(604, 19, 21, '2023-06-09 11:31:30'),(605, 16, 19, '2023-06-09 11:31:32'),(606, 17, 26, '2023-06-09 11:31:33'),(607, 3, 25, '2023-06-09 11:31:37'),(608, 12, 20, '2023-06-09 11:31:39'),(609, 17, 29, '2023-06-09 11:31:41'),(610, 3, 30, '2023-06-09 11:31:44'),(611, 3, 19, '2023-06-09 11:31:47'),(612, 13, 29, '2023-06-09 11:31:51'),(613, 9, 29, '2023-06-09 11:31:52'),(614, 7, 22, '2023-06-09 11:31:56'),(615, 11, 28, '2023-06-09 11:31:57'),(616, 7, 22, '2023-06-09 11:32:00'),(617, 11, 28, '2023-06-09 11:32:04'),(618, 7, 29, '2023-06-09 11:32:05'),(619, 14, 29, '2023-06-09 11:32:09'),(620, 17, 19, '2023-06-09 11:32:10'),(621, 17, 22, '2023-06-09 11:32:11'),(622, 8, 19, '2023-06-09 11:32:12'),(623, 7, 28, '2023-06-09 11:32:14'),(624, 1, 26, '2023-06-09 11:32:17'),(625, 14, 30, '2023-06-09 11:32:20'),(626, 5, 28, '2023-06-09 11:32:22'),(627, 7, 31, '2023-06-09 11:32:24'),(628, 8, 23, '2023-06-09 11:32:28'),(629, 11, 20, '2023-06-09 11:32:29'),(630, 13, 19, '2023-06-09 11:32:31'),(631, 9, 19, '2023-06-09 11:32:32'),(632, 1, 19, '2023-06-09 11:32:35'),(633, 12, 31, '2023-06-09 11:32:38'),(634, 11, 30, '2023-06-09 11:32:40'),(635, 1, 22, '2023-06-09 11:32:42'),(636, 4, 20, '2023-06-09 11:32:45'),(637, 18, 23, '2023-06-09 11:32:49'),(638, 12, 19, '2023-06-09 11:32:51'),(639, 19, 25, '2023-06-09 11:32:52'),(640, 3, 30, '2023-06-09 11:32:53'),(641, 17, 27, '2023-06-09 11:32:54'),(642, 4, 31, '2023-06-09 11:32:55'),(643, 10, 19, '2023-06-09 11:32:57'),(644, 15, 25, '2023-06-09 11:32:58'),(645, 17, 31, '2023-06-09 11:33:01'),(646, 19, 27, '2023-06-09 11:33:05'),(647, 4, 28, '2023-06-09 11:33:09'),(648, 16, 23, '2023-06-09 11:33:12'),(649, 7, 26, '2023-06-09 11:33:14'),(650, 19, 24, '2023-06-09 11:33:17'),(651, 4, 27, '2023-06-09 11:33:20'),(652, 10, 26, '2023-06-09 11:33:23'),(653, 14, 21, '2023-06-09 11:33:26'),(654, 16, 31, '2023-06-09 11:33:29'),(655, 16, 23, '2023-06-09 11:33:33'),(656, 8, 27, '2023-06-09 11:33:34'),(657, 9, 20, '2023-06-09 11:33:36'),(658, 10, 20, '2023-06-09 11:33:40'),(659, 7, 20, '2023-06-09 11:33:41'),(660, 13, 31, '2023-06-09 11:33:44'),(661, 15, 29, '2023-06-09 11:33:48'),(662, 15, 27, '2023-06-09 11:33:51'),(663, 3, 24, '2023-06-09 11:33:52'),(664, 8, 27, '2023-06-09 11:33:55'),(665, 7, 29, '2023-06-09 11:33:58'),(666, 7, 26, '2023-06-09 11:33:59'),(667, 1, 31, '2023-06-09 11:34:00'),(668, 7, 28, '2023-06-09 11:34:03'),(669, 7, 20, '2023-06-09 11:34:07'),(670, 2, 28, '2023-06-09 11:34:09'),(671, 5, 31, '2023-06-09 11:34:10'),(672, 13, 26, '2023-06-09 11:34:13'),(673, 18, 25, '2023-06-09 11:34:16'),(674, 4, 29, '2023-06-09 11:34:20'),(675, 18, 27, '2023-06-09 11:34:22'),(676, 5, 27, '2023-06-09 11:34:24'),(677, 1, 29, '2023-06-09 11:34:25'),(678, 14, 19, '2023-06-09 11:34:27'),(679, 17, 22, '2023-06-09 11:34:29'),(680, 5, 24, '2023-06-09 11:34:32'),(681, 4, 23, '2023-06-09 11:34:35'),(682, 16, 25, '2023-06-09 11:34:37'),(683, 12, 28, '2023-06-09 11:34:39'),(684, 5, 22, '2023-06-09 11:34:43'),(685, 12, 27, '2023-06-09 11:34:47'),(686, 5, 25, '2023-06-09 11:34:51'),(687, 1, 22, '2023-06-09 11:34:52'),(688, 14, 31, '2023-06-09 11:34:54'),(689, 7, 20, '2023-06-09 11:34:56'),(690, 20, 30, '2023-06-09 11:35:00'),(691, 3, 28, '2023-06-09 11:35:03'),(692, 10, 23, '2023-06-09 11:35:04'),(693, 9, 31, '2023-06-09 11:35:07'),(694, 10, 23, '2023-06-09 11:35:08'),(695, 2, 30, '2023-06-09 11:35:12'),(696, 11, 24, '2023-06-09 11:35:13'),(697, 12, 29, '2023-06-09 11:35:15'),(698, 15, 28, '2023-06-09 11:35:17'),(699, 19, 28, '2023-06-09 11:35:18'),(700, 14, 25, '2023-06-09 11:35:20'),(701, 12, 31, '2023-06-09 11:35:21'),(702, 4, 30, '2023-06-09 11:35:22'),(703, 12, 22, '2023-06-09 11:35:24'),(704, 18, 27, '2023-06-09 11:35:26'),(705, 8, 21, '2023-06-09 11:35:29'),(706, 12, 27, '2023-06-09 11:35:31'),(707, 2, 26, '2023-06-09 11:35:33'),(708, 18, 26, '2023-06-09 11:35:35'),(709, 15, 30, '2023-06-09 11:35:38'),(710, 7, 26, '2023-06-09 11:35:40'),(711, 9, 27, '2023-06-09 11:35:43'),(712, 3, 29, '2023-06-09 11:35:45'),(713, 13, 29, '2023-06-09 11:35:47'),(714, 12, 20, '2023-06-09 11:35:49'),(715, 1, 19, '2023-06-09 11:35:50'),(716, 4, 22, '2023-06-09 11:35:51'),(717, 16, 19, '2023-06-09 11:35:54'),(718, 12, 28, '2023-06-09 11:35:57'),(719, 13, 23, '2023-06-09 11:35:58'),(720, 17, 23, '2023-06-09 11:35:59'),(721, 11, 24, '2023-06-09 11:36:03'),(722, 20, 22, '2023-06-09 11:36:05'),(723, 20, 23, '2023-06-09 11:36:08'),(724, 13, 28, '2023-06-09 11:36:09'),(725, 8, 22, '2023-06-09 11:36:10'),(726, 12, 20, '2023-06-09 11:36:13'),(727, 2, 29, '2023-06-09 11:36:15'),(728, 4, 22, '2023-06-09 11:36:18'),(729, 20, 25, '2023-06-09 11:36:23'),(730, 17, 20, '2023-06-09 11:36:24'),(731, 17, 26, '2023-06-09 11:36:27'),(732, 3, 27, '2023-06-09 11:36:28'),(733, 4, 21, '2023-06-09 11:36:32'),(734, 14, 26, '2023-06-09 11:36:33'),(735, 17, 21, '2023-06-09 11:36:37'),(736, 18, 23, '2023-06-09 11:36:41'),(737, 19, 28, '2023-06-09 11:36:45'),(738, 19, 26, '2023-06-09 11:36:47'),(739, 10, 30, '2023-06-09 11:36:49'),(740, 16, 25, '2023-06-09 11:36:53'),(741, 1, 22, '2023-06-09 11:36:57'),(742, 2, 29, '2023-06-09 11:37:00'),(743, 7, 27, '2023-06-09 11:37:03'),(744, 19, 27, '2023-06-09 11:37:05'),(745, 9, 26, '2023-06-09 11:37:08'),(746, 4, 25, '2023-06-09 11:37:11'),(747, 1, 27, '2023-06-09 11:37:13'),(748, 4, 26, '2023-06-09 11:37:14'),(749, 6, 22, '2023-06-09 11:37:17'),(750, 4, 22, '2023-06-09 11:37:19'),(751, 3, 27, '2023-06-09 11:37:23'),(752, 7, 26, '2023-06-09 11:37:27'),(753, 13, 23, '2023-06-09 11:37:30'),(754, 6, 20, '2023-06-09 11:37:32'),(755, 16, 23, '2023-06-09 11:37:33'),(756, 20, 29, '2023-06-09 11:37:35'),(757, 16, 23, '2023-06-09 11:37:37'),(758, 14, 29, '2023-06-09 11:37:38'),(759, 5, 19, '2023-06-09 11:37:40'),(760, 8, 27, '2023-06-09 11:37:41'),(761, 14, 22, '2023-06-09 11:37:44'),(762, 19, 26, '2023-06-09 11:37:46'),(763, 20, 21, '2023-06-09 11:37:48'),(764, 14, 25, '2023-06-09 11:37:51'),(765, 2, 22, '2023-06-09 11:37:54'),(766, 18, 28, '2023-06-09 11:37:56'),(767, 15, 28, '2023-06-09 11:37:57'),(768, 19, 26, '2023-06-09 11:37:58'),(769, 17, 28, '2023-06-09 11:38:00'),(770, 15, 24, '2023-06-09 11:38:03'),(771, 3, 19, '2023-06-09 11:38:07'),(772, 3, 28, '2023-06-09 11:38:10'),(773, 2, 26, '2023-06-09 11:38:13'),(774, 20, 31, '2023-06-09 11:38:14'),(775, 3, 22, '2023-06-09 11:38:16'),(776, 12, 19, '2023-06-09 11:38:19'),(777, 20, 30, '2023-06-09 11:38:23'),(778, 9, 22, '2023-06-09 11:38:25'),(779, 14, 31, '2023-06-09 11:38:27'),(780, 19, 23, '2023-06-09 11:38:31'),(781, 15, 31, '2023-06-09 11:38:35'),(782, 20, 22, '2023-06-09 11:38:37'),(783, 6, 23, '2023-06-09 11:38:40'),(784, 8, 28, '2023-06-09 11:38:44'),(785, 8, 28, '2023-06-09 11:38:46'),(786, 12, 22, '2023-06-09 11:38:49'),(787, 14, 19, '2023-06-09 11:38:52'),(788, 6, 20, '2023-06-09 11:38:56'),(789, 18, 26, '2023-06-09 11:38:58'),(790, 7, 31, '2023-06-09 11:39:01'),(791, 13, 30, '2023-06-09 11:39:02'),(792, 2, 31, '2023-06-09 11:39:06'),(793, 8, 22, '2023-06-09 11:39:07'),(794, 3, 28, '2023-06-09 11:39:08'),(795, 18, 24, '2023-06-09 11:39:09'),(796, 14, 30, '2023-06-09 11:39:11'),(797, 4, 24, '2023-06-09 11:39:14'),(798, 3, 28, '2023-06-09 11:39:17'),(799, 12, 29, '2023-06-09 11:39:21'),(800, 11, 19, '2023-06-09 11:39:22'),(801, 18, 27, '2023-06-09 11:39:26'),(802, 15, 20, '2023-06-09 11:39:27'),(803, 14, 30, '2023-06-09 11:39:28'),(804, 6, 31, '2023-06-09 11:39:31'),(805, 4, 27, '2023-06-09 11:39:34'),(806, 10, 22, '2023-06-09 11:39:35'),(807, 8, 25, '2023-06-09 11:39:38'),(808, 19, 19, '2023-06-09 11:39:39'),(809, 2, 26, '2023-06-09 11:39:43'),(810, 12, 19, '2023-06-09 11:39:46'),(811, 8, 26, '2023-06-09 11:39:50'),(812, 10, 31, '2023-06-09 11:39:53'),(813, 6, 19, '2023-06-09 11:39:56'),(814, 2, 28, '2023-06-09 11:39:57'),(815, 17, 24, '2023-06-09 11:39:59'),(816, 17, 25, '2023-06-09 11:40:02'),(817, 5, 31, '2023-06-09 11:40:05'),(818, 5, 19, '2023-06-09 11:40:09'),(819, 20, 25, '2023-06-09 11:40:13'),(820, 20, 19, '2023-06-09 11:40:15'),(821, 11, 27, '2023-06-09 11:40:19'),(822, 18, 23, '2023-06-09 11:40:20'),(823, 7, 29, '2023-06-09 11:40:22'),(824, 8, 24, '2023-06-09 11:40:23'),(825, 20, 31, '2023-06-09 11:40:26'),(826, 15, 31, '2023-06-09 11:40:30'),(827, 19, 26, '2023-06-09 11:40:31'),(828, 8, 31, '2023-06-09 11:40:35'),(829, 5, 25, '2023-06-09 11:40:37'),(830, 13, 21, '2023-06-09 11:40:40'),(831, 2, 29, '2023-06-09 11:40:42'),(832, 1, 20, '2023-06-09 11:40:43'),(833, 16, 26, '2023-06-09 11:40:46'),(834, 3, 31, '2023-06-09 11:40:48'),(835, 11, 27, '2023-06-09 11:40:51'),(836, 5, 19, '2023-06-09 11:40:52'),(837, 13, 26, '2023-06-09 11:40:54'),(838, 9, 19, '2023-06-09 11:40:56'),(839, 4, 20, '2023-06-09 11:41:00'),(840, 18, 21, '2023-06-09 11:41:02'),(841, 13, 31, '2023-06-09 11:41:03'),(842, 3, 22, '2023-06-09 11:41:04'),(843, 13, 20, '2023-06-09 11:41:08'),(844, 1, 30, '2023-06-09 11:41:09'),(845, 16, 20, '2023-06-09 11:41:11'),(846, 9, 25, '2023-06-09 11:41:14'),(847, 13, 27, '2023-06-09 11:41:17'),(848, 9, 30, '2023-06-09 11:41:21'),(849, 16, 25, '2023-06-09 11:41:24'),(850, 5, 25, '2023-06-09 11:41:26'),(851, 14, 31, '2023-06-09 11:41:27'),(852, 7, 26, '2023-06-09 11:41:31'),(853, 10, 25, '2023-06-09 11:41:33'),(854, 1, 19, '2023-06-09 11:41:36'),(855, 3, 28, '2023-06-09 11:41:39'),(856, 1, 21, '2023-06-09 11:41:42'),(857, 8, 29, '2023-06-09 11:41:43'),(858, 13, 28, '2023-06-09 11:41:45'),(859, 15, 31, '2023-06-09 11:41:48'),(860, 20, 20, '2023-06-09 11:41:50'),(861, 13, 20, '2023-06-09 11:41:51'),(862, 1, 25, '2023-06-09 11:41:54'),(863, 9, 19, '2023-06-09 11:41:56'),(864, 13, 26, '2023-06-09 11:41:59'),(865, 18, 26, '2023-06-09 11:42:03'),(866, 7, 31, '2023-06-09 11:42:06'),(867, 15, 19, '2023-06-09 11:42:10'),(868, 9, 20, '2023-06-09 11:42:12'),(869, 19, 25, '2023-06-09 11:42:14'),(870, 8, 19, '2023-06-09 11:42:15'),(871, 19, 22, '2023-06-09 11:42:18'),(872, 5, 25, '2023-06-09 11:42:20'),(873, 2, 24, '2023-06-09 11:42:21'),(874, 15, 20, '2023-06-09 11:42:23'),(875, 16, 24, '2023-06-09 11:42:26'),(876, 11, 26, '2023-06-09 11:42:30'),(877, 2, 22, '2023-06-09 11:42:32'),(878, 20, 29, '2023-06-09 11:42:33'),(879, 18, 29, '2023-06-09 11:42:37'),(880, 15, 20, '2023-06-09 11:42:38'),(881, 11, 20, '2023-06-09 11:42:42'),(882, 11, 21, '2023-06-09 11:42:45'),(883, 6, 28, '2023-06-09 11:42:47'),(884, 16, 28, '2023-06-09 11:42:49'),(885, 17, 22, '2023-06-09 11:42:52'),(886, 7, 28, '2023-06-09 11:42:53'),(887, 3, 24, '2023-06-09 11:42:55'),(888, 1, 27, '2023-06-09 11:42:58'),(889, 10, 23, '2023-06-09 11:42:59'),(890, 5, 21, '2023-06-09 11:43:00'),(891, 3, 28, '2023-06-09 11:43:01'),(892, 16, 20, '2023-06-09 11:43:02'),(893, 11, 25, '2023-06-09 11:43:03'),(894, 5, 22, '2023-06-09 11:43:04'),(895, 14, 26, '2023-06-09 11:43:05'),(896, 20, 27, '2023-06-09 11:43:08'),(897, 3, 22, '2023-06-09 11:43:09'),(898, 5, 29, '2023-06-09 11:43:11'),(899, 14, 31, '2023-06-09 11:43:15'),(900, 16, 21, '2023-06-09 11:43:19'),(901, 11, 31, '2023-06-09 11:43:20'),(902, 16, 23, '2023-06-09 11:43:23'),(903, 16, 30, '2023-06-09 11:43:25'),(904, 10, 28, '2023-06-09 11:43:28'),(905, 11, 21, '2023-06-09 11:43:31'),(906, 14, 26, '2023-06-09 11:43:35'),(907, 10, 27, '2023-06-09 11:43:38'),(908, 3, 23, '2023-06-09 11:43:42'),(909, 13, 19, '2023-06-09 11:43:46'),(910, 11, 31, '2023-06-09 11:43:47'),(911, 13, 31, '2023-06-09 11:43:48'),(912, 17, 23, '2023-06-09 11:43:50'),(913, 17, 24, '2023-06-09 11:43:51'),(914, 4, 31, '2023-06-09 11:43:53'),(915, 7, 27, '2023-06-09 11:43:57'),(916, 19, 26, '2023-06-09 11:43:58'),(917, 18, 23, '2023-06-09 11:44:01'),(918, 16, 25, '2023-06-09 11:44:04'),(919, 6, 25, '2023-06-09 11:44:05'),(920, 19, 31, '2023-06-09 11:44:08'),(921, 20, 25, '2023-06-09 11:44:09'),(922, 14, 25, '2023-06-09 11:44:12'),(923, 17, 29, '2023-06-09 11:44:16'),(924, 19, 20, '2023-06-09 11:44:20'),(925, 15, 24, '2023-06-09 11:44:21'),(926, 8, 22, '2023-06-09 11:44:25'),(927, 13, 29, '2023-06-09 11:44:27'),(928, 5, 29, '2023-06-09 11:44:29'),(929, 2, 19, '2023-06-09 11:44:34'),(930, 5, 26, '2023-06-09 11:44:38'),(931, 20, 25, '2023-06-09 11:44:40'),(932, 3, 19, '2023-06-09 11:44:43'),(933, 14, 28, '2023-06-09 11:44:45'),(934, 14, 29, '2023-06-09 11:44:46'),(935, 1, 20, '2023-06-09 11:44:49'),(936, 1, 27, '2023-06-09 11:44:51'),(937, 10, 27, '2023-06-09 11:44:55'),(938, 18, 29, '2023-06-09 11:44:56'),(939, 1, 28, '2023-06-09 11:44:57'),(940, 16, 22, '2023-06-09 11:44:59'),(941, 7, 22, '2023-06-09 11:45:02'),(942, 11, 30, '2023-06-09 11:45:06'),(943, 18, 31, '2023-06-09 11:45:07'),(944, 12, 22, '2023-06-09 11:45:11'),(945, 13, 29, '2023-06-09 11:45:15'),(946, 17, 26, '2023-06-09 11:45:19'),(947, 7, 26, '2023-06-09 11:45:22'),(948, 1, 19, '2023-06-09 11:45:24'),(949, 4, 31, '2023-06-09 11:45:27'),(950, 5, 26, '2023-06-09 11:45:29'),(951, 14, 26, '2023-06-09 11:45:33'),(952, 17, 24, '2023-06-09 11:45:34'),(953, 6, 21, '2023-06-09 11:45:38'),(954, 5, 21, '2023-06-09 11:45:40'),(955, 9, 19, '2023-06-09 11:45:44'),(956, 12, 26, '2023-06-09 11:45:47'),(957, 5, 30, '2023-06-09 11:45:48'),(958, 3, 26, '2023-06-09 11:45:52'),(959, 12, 21, '2023-06-09 11:45:55'),(960, 13, 23, '2023-06-09 11:45:57'),(961, 2, 22, '2023-06-09 11:46:01'),(962, 10, 31, '2023-06-09 11:46:05'),(963, 14, 24, '2023-06-09 11:46:06'),(964, 15, 24, '2023-06-09 11:46:08'),(965, 18, 19, '2023-06-09 11:46:09'),(966, 16, 24, '2023-06-09 11:46:12'),(967, 4, 22, '2023-06-09 11:46:16'),(968, 11, 25, '2023-06-09 11:46:20'),(969, 3, 24, '2023-06-09 11:46:22'),(970, 20, 30, '2023-06-09 11:46:24'),(971, 7, 24, '2023-06-09 11:46:27'),(972, 14, 26, '2023-06-09 11:46:31'),(973, 10, 22, '2023-06-09 11:46:32'),(974, 8, 30, '2023-06-09 11:46:34'),(975, 5, 30, '2023-06-09 11:46:36'),(976, 4, 26, '2023-06-09 11:46:39'),(977, 12, 19, '2023-06-09 11:46:40'),(978, 9, 23, '2023-06-09 11:46:41'),(979, 13, 22, '2023-06-09 11:46:43'),(980, 12, 29, '2023-06-09 11:46:45'),(981, 12, 22, '2023-06-09 11:46:47'),(982, 4, 30, '2023-06-09 11:46:51'),(983, 11, 19, '2023-06-09 11:46:54'),(984, 9, 24, '2023-06-09 11:46:56'),(985, 10, 20, '2023-06-09 11:46:59'),(986, 10, 19, '2023-06-09 11:47:01'),(987, 16, 25, '2023-06-09 11:47:03'),(988, 17, 25, '2023-06-09 11:47:05'),(989, 10, 26, '2023-06-09 11:47:09'),(990, 15, 25, '2023-06-09 11:47:12'),(991, 20, 24, '2023-06-09 11:47:16'),(992, 10, 25, '2023-06-09 11:47:20'),(993, 10, 31, '2023-06-09 11:47:24'),(994, 19, 19, '2023-06-09 11:47:25'),(995, 8, 29, '2023-06-09 11:47:28'),(996, 19, 27, '2023-06-09 11:47:32'),(997, 15, 31, '2023-06-09 11:47:35'),(998, 10, 24, '2023-06-09 11:47:39'),(999, 19, 20, '2023-06-09 11:47:43'),(1000, 4, 25, '2023-06-09 11:47:45');
选中插入代码,点击执行
插入数据成功后,可以看到source_table和dimension_table中已有数据。
查询数据条数
select count(1) from source_table;
select count(1) from dimension_table;
二、创建session集群
使用之前的flink-sql-test-session集群即可。如若没有,安装下面步骤创建。
- 登录实时计算控制台。
- 在Flink全托管页签,单击目标工作空间名称对应应操作列下的控制台。
- 在左侧导航栏,单击Session集群。
- 单击创建Session集群。
表格中未提及的参数保持默认值即可,需要配置的参数说明请参见下表。
配置项 | 说明 | 配置示例 |
名称 | Session集群名称。 | flink-sql-test-session |
状态 | 设置当前集群的期望运行状态:
| RUNNING |
引擎版本 | Session集群引擎版本号。 | vvr-6.0.7-flink-1.15 |
Task Managers数量 | 默认与并行度保持一致。 | 4 |
- 单击创建Session集群。
当Session集群状态(页面上方集群名称旁边)从启动中变为运行中后,可以进入后续步骤。
三、源表查询
进入Flink开发平台,点击左侧作业开发,在demo文件夹下创建mysqlcdc-test流作业草稿,版本选择vvr-6.0.7-flink-1.15。创建源表,代码如下
CREATE TABLE mysql_source_table(id INT NOT NULL PRIMARY KEY NOT ENFORCED,record_time TIMESTAMP(3),good_id INT,amount INT,WATERMARK FOR record_time AS record_time-INTERVAL '5' SECOND
)WITH('connector' = 'mysql','hostname' = 'rm-cn-g48798978t000ca.rwlb.rds.aliyuncs.com','port' = '3306','username' = 'itlanson','password' = 'It123','database-name' = 'test','table-name' = 'source_table'
);
其中hostname后是mysql的内网ip,可以在mysql实例详情的数据库连接处查看。
username和password是mysql的账号和密码。
选中代码后,点击运行,完成源表创建。
查询表数据,验证源表数据可以正常捕获。
SELECT * FROM mysqlcdc_source_table;
选中查询代码,点击调试,选择flink-sql-test-session集群,结果如下。
查询数据条数
SELECT count(1) FROM mysql_source_table;
选择代码后,点击调试。
可以看到控制台的结果在不断增大,达到500会暂停。这是因为默认查询500条,此时需要点击左侧的绿色箭头,恢复查询。
最后结果如下,可以看到,与mysql中的对应表数据条数相同。
此时,在mysql中插入一条数据。
INSERT INTO `source_table` (`id`, `good_id`, `amount`, `record_time`)
VALUE (1001, 1, 19, '2023-06-09 11:59:34');
插入成功后,观察flink控制台,发现数据已经发生了变化。即已经捕获了新增的数据。
四、窗口计算
接下来,我们希望对原始数据按照时间窗口进行分组计算。我们使用TUMBLE相关窗口函数结合GROUP BY,将长度 15 秒内的订单数据按照商品 ID 进行归类,并使用SUM计算其销售总额。
在Flink作业编辑页签中,输入如下代码。选中代码,点击调试,观察控制台的输出结果。
SELECTgood_id,tumble_start(record_time, interval '15' seconds) AS record_timestamp,sum(amount) AS total_amount
FROMmysql_source_table
GROUP BYtumble(record_time, interval '15' seconds),good_id;
结果如下
在这个业务场景中,购买商品信息使用good_id记录,而商品ID到可读商品名字的映射表、每件商品的价格等信息则存储在另一张维度表(Dimension Table)中。我们同样可以使用Flink SQL连接维度表,只需在Flink作业中编写下面的语句。
首先建表
CREATE TABLE dimension_table (good_id INT NOT NULL PRIMARY KEY NOT ENFORCED,good_name VARCHAR(256),good_price INT
)WITH('connector' = 'mysql','hostname' = 'rm-cn-g48798978t000ca.rwlb.rds.aliyuncs.com','port' = '3306','username' = 'itlanson','password' = 'It123','database-name' = 'test','table-name' = 'dimension_table'
);
查询数据条数
select count(1) from dimension_table;
查询结果,与mysql中对应表的数据条数一致。
这里,我们希望根据上一步中统计出的「每15秒商品销售量」信息,计算出每件商品的销售额。由于商品名称及商品价格数据存储在另一张维度表 dimension_table中,我们需要将结果视图和 dimension_table进行JOIN操作,并将「商品销售量」、「商品价格」相乘计算出「商品销售额」,并提取结果中的商品可读名称信息作为结果表。
需要确保 dimension_table中存在对应商品 ID 的条目。
作业代码如下。
SELECTrecord_timestamp,good_name,total_amount * good_price AS revenue
FROM(SELECTgood_id,tumble_start(record_time, interval '15' seconds) AS record_timestamp,sum(amount) AS total_amountFROMmysql_source_tableGROUP BYtumble(record_time,interval '15'seconds),good_id)AS tumbled_tableLEFT JOIN dimension_table ON tumbled_table.good_id = dimension_table.good_id;
选中代码,点击调试,结果如下
五、结果数据写回数据库
我们将这些实时的统计数据写回数据库,Flink SQL也可以简单地实现这一点。首先我们需要创建一张用于连接汇表的 Flink 表,代码如下所示:
CREATE TABLE mysql_sink_table (record_timestamp TIMESTAMP(3) NOT NULL PRIMARY KEY NOT ENFORCED,good_name VARCHAR(128),sell_amount INT
) WITH ('connector' = 'jdbc','url' = 'jdbc:mysql://rm-cn-g48798978t000ca.rwlb.rds.aliyuncs.com:3306/test','table-name' = 'sink_table','username' = 'itlanson','password' = 'It123','scan.auto-commit' = 'true'
);
注意:url中//与:之间的为mysql的内网ip,根据实际进行更改。
新建mysqlcdc-insert流作业草稿,版本选择vvr-6.0.7-flink-1.15。
INSERT INTO mysql_sink_table
SELECT record_timestamp, good_name, total_amount * good_price AS revenue
FROM (SELECT good_id, tumble_start(record_time, interval '15' seconds) AS record_timestamp, sum(amount) AS total_amount FROM mysql_source_table GROUP BY tumble (record_time, interval '15' seconds), good_id) AS tumbled_table LEFT JOIN dimension_table ON tumbled_table.good_id = dimension_table.good_id;
点击右上角部署,提交上线。
进入左侧作业运维,启动新提交的作业。
等待一段时间,作业状态变成运行中。点击状态总览可以看到作业执行图。可以看到首先进行的是源表数据的捕获与窗口聚合;接着和维度表进行JOIN操作得到运算结果;最后将处理数据存入汇表。
等待数据写入后,可以在mysql对应表查看写入结果。
返回DMS的SQL Console,查询数据。
SELECT * FROM `sink_table`;
结果如下
- 📢博客主页:https://lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨