layout: post
title: "データベースの問題を発見、後から追加された重複ツイート1932件を削除で対処"
date: 2018-05-04 12:43:41 +0900
categories: お知らせ パソコン管理
tags: データベース
---
データベースにツイートを登録するスクリプトで事前の重複チェックが機能していないことを発見しました。Ubuntu1804に移行してからの問題だと思いますが、なぜかローカルの変数名に@がついていました。一括置換した際に間違って変換されたものと考えられます。
次のように対処しました。
delete from tw_user_tweet where id not in (select min_id from (select min(t1.id) as min_id from tw_user_tweet as t1 group by t1.tw_url) as t2);
同じURLのツイートの重複がなくなったことは、コマンドラインから次のように確認しました。
% mysql -u root benngosi_twitter -e 'select tw_url from tw_user_tweet group by tw_url HAVING count(*) >= 2\G'
* ツイート%s_hirono(非常上告-最高検察庁御中_ツイッター)%2018/05/04 13:00%<https://twitter.com/s_hirono/status/992252524244561920>
{% tweet 992252524244561920 %}
2018-04-30-114006_北朝鮮の核開発を阻止しようとするのは批判されるべきことなのかな?.jpg https://t.co/L0ws6t9cwx
上記のツイートにあるスクリーンショットがUbuntu1804に移行して初めに記録したスクリーンショットのファイルになります。
fstabに間違ってルートのパーティションのUUIDを登録してしまい。remountまで出来なくなったので、ほぼほぼアプリのインストールと設定が終わった段階で再インストールするアクシデントもありました。
夜の22時ぐらいに復旧を断念したように憶えていますので、それが4月29日のことだと思います。朝方に掛けて再インストールを行い、4月30日の午前11時ころには、アプリのインストールと設定はほぼほぼ終わっていたと思いますが、前後にスクリプトの不具合を多く発見しました。
主な原因は、Ubuntu1710で2.3だったRubyのバージョンがUbuntu1804では2.5になっていたのです。これでデータベース関係のライブラリーが使えなくなって、別のものに差し替えたのですが、そこで絵文字を含む文字コードの問題が起こったのです。
調べて解決するのに時間が掛かりましたが、全部で3日ぐらいのことではなかったかと思います。寝る時間も少しでぶっ通しでやりました。スクリプトの数は多く、修正点も多かったです。よく使うスクリプトは修正済みと思っていたのですが、肝心の登録用のものに不具合が出来ていました。
具体的な影響は、4月30日以降に、データベースから抽出したまとめ記事に、重複したツイートが含まれている可能性が高いことです。現在時刻は2018年13時24分ですが、これ以降に作成・投稿するまとめ記事には重複は発生しないはずです。
ばたばたしていたので自身の備忘録としても書いておきました。
0 件のコメント:
コメントを投稿