PR

【5/30】航海日誌48時間過ぎたデータの削除 #1850

kouho opened this at 2022-05-20T17:40:52; closed

Description

opened by kouho at 2022-05-20T17:40:52; updated 2022-06-02T18:29:14

概要

48時間以上位置登録の履歴が残っている #1842
への対応用PRです。log_user_activityのログ移動スクリプトのコメントアウトを外しました。
反映は来月予定。

テスト方法、確認した内容

削除後表示がおかしくないか、スクリプトは問題なく動作しているか

TODO

件数が多いのでスクリプト実行前にlog_user_activityの現在データを__oldにしたほうが良さそう

手順

CREATE TABLE `jrye`.`log_user_activity__new` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_no` int(11) NOT NULL,
  `type` tinyint(4) NOT NULL,
  `type2` tinyint(4) NOT NULL,
  `user_no2` int(11) NOT NULL,
  `info1` int(11) NOT NULL DEFAULT '0',
  `info2` int(11) NOT NULL DEFAULT '0',
  `info3` int(11) NOT NULL DEFAULT '0',
  `check_flg` tinyint(4) NOT NULL DEFAULT '0',
  `reg_date` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_no` (`user_no`,`type`,`reg_date`),
  KEY `user_no_2` (`user_no`,`check_flg`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
RENAME TABLE log_user_activity TO log_user_activity__old, log_user_activity__new TO log_user_activity;
ENVIRONMENT=development PF=yamada php lib/exec/tool_insert_recently_log_user_activity.php
DROP TABLE `jrye_log`.`log_user_activity`;
CREATE TABLE `jrye_log`.`log_user_activity` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_no` int(11) NOT NULL,
  `type` tinyint(4) NOT NULL,
  `type2` tinyint(4) NOT NULL,
  `user_no2` int(11) NOT NULL,
  `info1` int(11) NOT NULL DEFAULT '0',
  `info2` int(11) NOT NULL DEFAULT '0',
  `info3` int(11) NOT NULL DEFAULT '0',
  `check_flg` tinyint(4) NOT NULL DEFAULT '0',
  `reg_date` int(11) NOT NULL,
  PRIMARY KEY (`id`,`reg_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `jrye_log`.`log_user_activity`
PARTITION BY RANGE ( reg_date ) (
  PARTITION p202205 VALUES LESS THAN ( 1654009200 ),
  PARTITION p202206 VALUES LESS THAN ( 1656601200 ),
  PARTITION p202207 VALUES LESS THAN ( 1659279600 ),
  PARTITION p202208 VALUES LESS THAN ( 1661958000 ),
  PARTITION p202209 VALUES LESS THAN ( 1664550000 ),
  PARTITION p202210 VALUES LESS THAN ( 1667228400 ),
  PARTITION p202211 VALUES LESS THAN ( 1669820400 ),
  PARTITION p202212 VALUES LESS THAN ( 1672498800 ),
  PARTITION p202301 VALUES LESS THAN ( 1675177200 ),
  PARTITION p202302 VALUES LESS THAN ( 1677596400 ),
  PARTITION p202303 VALUES LESS THAN ( 1680274800 ),
  PARTITION p202304 VALUES LESS THAN ( 1682866800 ),
  PARTITION p202305 VALUES LESS THAN ( 1685545200 ),
  PARTITION p202306 VALUES LESS THAN ( 1688137200 ),
  PARTITION p202307 VALUES LESS THAN ( 1690815600 ),
  PARTITION p202308 VALUES LESS THAN ( 1693494000 ),
  PARTITION p202309 VALUES LESS THAN ( 1696086000 ),
  PARTITION p202310 VALUES LESS THAN ( 1698764400 ),
  PARTITION p202311 VALUES LESS THAN ( 1701356400 ),
  PARTITION p202312 VALUES LESS THAN ( 1704034800 ),
  PARTITION p202401 VALUES LESS THAN ( 1706713200 ),
  PARTITION p202402 VALUES LESS THAN ( 1709218800 ),
  PARTITION p202403 VALUES LESS THAN ( 1711897200 ),
  PARTITION p202404 VALUES LESS THAN ( 1714489200 ),
  PARTITION p202405 VALUES LESS THAN ( 1717167600 ),
  PARTITION p202406 VALUES LESS THAN ( 1719759600 ),
  PARTITION p202407 VALUES LESS THAN ( 1722438000 ),
  PARTITION p202408 VALUES LESS THAN ( 1725116400 ),
  PARTITION p202409 VALUES LESS THAN ( 1727708400 ),
  PARTITION p202410 VALUES LESS THAN ( 1730386800 ),
  PARTITION p202411 VALUES LESS THAN ( 1732978800 ),
  PARTITION p202412 VALUES LESS THAN ( 1735657200 )
);
kouho change_title at 2022-05-23T13:57:13: [WIP]【5/30】航海日誌48時間過ぎたデータの削除 【5/30】航海日誌48時間過ぎたデータの削除

Comment

#19256 by kouho at 2022-05-23T13:57:30; updated 2022-05-23T13:57:30

@wada
お手隙で確認お願いいたします

Comment

#19343 by wada at 2022-05-26T11:26:31; updated 2022-05-26T11:26:31

@kouho
pr内容の対応は問題ありません。

初回は大量のデータの挿入と削除が必要になりそうですが、どのように対応しますか?

Comment

#19535 by kouho at 2022-06-01T17:14:52; updated 2022-06-01T17:14:52

@wada
log_gold_changeの対応を参考に手順を記載しましたのでお手隙で確認お願いいたします。

Comment

#19542 by kouho at 2022-06-02T10:15:06; updated 2022-06-02T10:15:06

@wada
CREATE文を修正してプライマリーキーの修正とパーティションの設定用のクエリを追加しました。

Comment

#19547 by wada at 2022-06-02T11:30:39; updated 2022-06-02T18:27:55

@kouho
作業内容の確認ですが、以下の内容で間違い無いですか?
1. jryeDBで、log_user_activity__newテーブルを作成
2. jryeDBで、log_user_activity__newテーブルとlog_user_activityテーブルを入れ替え
3. jryeDBで、log_user_activity__oldテーブルからlog_user_activityテーブルへ48時間分のレコードを挿入
4. jrye_logDBで、元のlog_user_actibityテーブルを削除
5. jrye_logDBで、パーティション化されたlog_user_actibityテーブルを作成
6. cronにバッチを設定して、10分ごとにjrye.log_user_actibityテーブルからjrye_log.log_user_actibityテーブルに48時間以前のデータを移動
7. jrye.log_user_activity__oldテーブルが、容量を圧迫するようなら、dumpしてテーブル削除

Comment

#19559 by kouho at 2022-06-02T13:59:20; updated 2022-06-02T13:59:20

@wada
和田さんの書いている内容で間違い無いです

Comment

#19563 by wada at 2022-06-02T14:08:55; updated 2022-06-02T14:08:55

@kouho
ありがとうございます。手順に関しては問題ないです。
jrye_log. log_user_actibity について、もしindexを参照することがないのであれば、index(user_no, user_no_2)を削除しても良いかなと思います。
indexの分だけ容量が大きくなるためです。

Comment

#19567 by kouho at 2022-06-02T15:02:18; updated 2022-06-02T15:02:18

@wada
了解ですjrye_log.log_user_activityはindex削除しますね

Comment

#19570 by wada at 2022-06-02T15:30:48; updated 2022-06-02T15:30:48

@kouho
index使用しなさそうですかね。okです

wada add_label at 2022-06-02T15:30:51: 和田 LGTM
kouho merge at 2022-06-02T15:40:35: 【5/30】航海日誌48時間過ぎたデータの削除
kouho close at 2022-06-02T15:40:35: Close
kouho refer at 2022-06-02T16:19:20: 1906:【6/2】リリース・航海日誌48時間過ぎたデータの削除

Commit range

baseb34a47dc73e7829588da53b0d150505a73bfb6b8
head9e2de4f814ac67f15006b09b59f93502445285c5
base branchjolly/jr-web:develop
head branchjolly/jr-web:del_log_user_activity

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed2 filesView patch
statusfile
modifiedlib/exec/del_log_data.sh
addedlib/exec/tool_insert_recently_log_user_activity.php
Patch body is stored as a separate file to keep this page lightweight.