次に、バックアップファイルを使用してviberチャットの統計を取得する方法について説明します。
1.アカウントのバックアップコピーはviber.dbデータベース形式であり、PCバージョンの場合、パスに沿って配置されます:C:\ Users \ <User_name> \ AppData \ Roaming \ ViberPC \ <電話番号>。
2. SQL LiteBrowserを使用してデータベースファイルを読み取りました。
3. SQLLiteブラウザでviber.dbファイルを開きます。データベースは次のように表示されます
。4。メインテーブルはイベントで、バイブ内のすべてのイベント(アカウント別)には番号(EventID)が付けられています。他のテーブルには、EventIDと呼ばれる外部キーの関係があります。メッセージに関する情報はメッセージテーブルに、ユーザーに関する情報は連絡先テーブルに保存されます。私はこれらの3つのテーブルのみを使用しました。
5.チャットの統計を取得するには、最初に目的のチャットChatIDの識別子を見つける必要があります。これを行うには、ChatInfoテーブルのコンテキストメニューの[データの表示]項目を選択し、[データ]タブに移動して表示します。
6.チャットの名前(Name属性)で目的のチャットを探し、そのID(ChatID属性)を確認します。
7.同様に、Name属性(ユーザーが電話に記録されているため)またはClientName(アカウントによるユーザー名)を使用して、連絡先テーブルのユーザーID(ContactID)を取得できます。 ClientName属性を使用したのは電話のノートブックにすべてのユーザーがいるわけではありません。
8.次に、[SQL]タブで[選択]クエリを作成して、必要なデータを取得します。どの属性を実行するかはニーズによって異なります。そのためには、適切な要求を行う必要があります。私自身、表1に示すリクエストを行いました。
表1.使用したリクエストのリスト
P / pいいえ。 | リクエストテキスト | 説明 |
---|---|---|
1 | メッセージ、イベントからカウント(Messages.EventID)を選択します。ここで、Messages.EventID = Events.EventIDおよびEvents.ChatID = 46 | チャットメッセージの数 |
2 | カウント(Messages.EventID)、Contact.ClientNameをMessages、Events、Contactから選択します。Messages.EventID= Events.EventID and Events.ChatID = 46およびEvents.ContactID = Contact.ContactID group by Events.ContactID order by Contact.ContactID | ユーザーごとの投稿数(各ユーザーのイベント数を返します) |
3 | Select Contact.ContactID, Contact.ClientName from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ChatID=46 and Events.ContactID=Contact.ContactID group by Events.ContactID order by Contact.ContactID | |
4 | Select * from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ContactID=Contact.ContactID and Events.ChatID=46 and Events.ContactID=465 | |
5 | Select count(Messages.EventID), Messages.Type from Messages, Events where Messages.EventID=Events.EventID and Events.ChatID=46 group by Messages.Type order by Messages.Type | (. 2) |
6 | Select Count(Messages.Type), Messages.Type from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ContactID=Contact.ContactID and Events.ChatID=46 and Events.ContactID=482 group by Messages.Type | |
7 | Select Count(Messages.PGIsLiked), Contact.ClientName from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ChatID=46 and Messages.Type=0 and Messages.PGIsLiked=1 and Events.ContactID=Contact.ContactID group by Contact.ClientName order by Contact.ContactID | |
8 | Select Sum(Messages.PGLikeCount), Contact.ClientName from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ChatID=46 and Events.ContactID=Contact.ContactID group by Contact.ClientName order by Contact.ContactID | |
9 | Select Events.TimeStamp from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ContactID=Contact.ContactID and Events.ChatID=46 and Events.ContactID=460 order by Events.TimeStamp | (. . 11) |
2.
№ / | ||
---|---|---|
1 | EventID | . , .. , |
2 | Type | ( , , ):
0 – : , 1 – 2 — 3 — 4 – 9 – 11 – 12 — 15 – , 65 – 66 – 67 – 68 – 69 — 72 – 77 — |
3 | ContactID | |
4 | ClientName | |
5 | ChatID | |
6 | TimeStamp | UNIX- POSIX- (. Unix time) — , UNIX POSIX- .
( UTC) 31 1969 1 1970, . |
9.クエリを実行した後、最初に結果をPDFにエクスポートし、次にExcelにエクスポートしました(私にとっては簡単でした):
10。その後、たとえばリクエスト#5(表1を参照)で、データを使用してExcelでインフォグラフィックを作成しました。
注1.データ異なるのでチャットがアクティブで、データベースが更新されています。
注2.すでにexcelで、タイプ65 ... 77を共通のもの(サービス)に結合しました。
11.時間属性(TimeStamp)の操作方法。データベースでは、UNIXの時刻を使用してイベントを時刻にバインドし、日付と時刻のバインドに関連するデータを取得するには、それらをさらに処理する必要がありました。これが私がどのようにexcelでそれをしたかの例です:
a。クエリ9(表1を参照)の結果をexcel(列A)に保存します。
b。列Bでは、最後の3文字(何のためにあるのかわかりませんでした)を破棄して、UNIX形式で時間を取得します。これは、式= LEFT(A2; DLSTR(A2)-3)を使用して行います。行の全範囲にわたって式を伸ばします。
c。列Cはユニット(メッセージカウンター)で埋められます。
d。列Dで、式=(B2 / 86400)+ 25569を使用して、日付を人間が読める日付に変換します。行の範囲全体に式を伸ばします。
e。1か月あたりのメッセージ数(セルE2:R2)をカウントするには、式= SUMIF($ C $ 2:$ C $ 1434; $ D $ 2:$ D $ 1434; "> ="&E $ 1; $ D $ 2:$ D $ 1434; "<= "&EONMONTHS(E $ 1; 0))。式を列E1:R1の全範囲に拡張します。
f。セルE1:R2の範囲に基づいてヒストグラムを作成します。
結論
統計を収集するこの方法は手動モードで実行され、リソースを大量に消費しますが(少なくとも費やした時間に関しては)、少なくとも効率的です。より良いものがないため、いわば。この方法は、チャットだけでなく、Viberアカウント全体の統計を取得するためにも使用できます。ソースを添付しません、tk。ユーザーの個人データを含む実際のチャットですべての操作を実行しましたが、テスト用に別のチャットを作成するのが面倒です。清聴ありがとうございました。