nakahara
nakap****@yahoo*****
2005年 1月 2日 (日) 02:31:47 JST
海老澤様 中原です。 明けましておめでとうございます。 説明が悪くて申し訳ないです。 >ということは、2、3、4は同じ結果(厳密なユニーク集計 >結果ではない)ということでしょうか? はい、2,3,4は同じ結果になると思います。 ただし、厳密なユニーク集計結果ではないかというのは 一概には言えないと思います。 入力ファイルのキー項目で指定される項目が、並び換わって いるのでしたら、求めているユニーク結果になるだろうし、 状況によっては入力ファイルのレコード順で処理したい場合も あるのかもしれません。 例えば、以下のような入力ファイルで実際に試されれば よくわかるかもしれません。 ID a b b a a b 2. xtcount -q -kID -aNum -i file1.xt -o file2.xt 3. xtcount -t -k1 -i file1.txt -o file2.txt 4. xtcount -q -t -k1 -i file1.txt -o file2.txt 2,3,4の結果は以下のようになります。 ID Num a 1 b 2 a 2 b 1 同じaという値でも、間にbを挟むことにより2回目に 出てきたaは最初のaとは別の物として扱われます。 (処理的には、ファイルの上から1行ずつ読み込み、現在行と 次の行の値(キーで指定された項目) を比較し、同じ値なら繰り返し読み込みを続け、 違う値なら結果を出力するという処理を 行っているからです。) ですから、キー項目の並び換えをしていないと 上記のような結果になります。 1.xtcount -kID -aNum -i file1.xt -o file2.xt 1.のようにxmlTable形式で[-q]を指定しなければ、 キーで指定した項目をMUSASHIが自動で並びかえてくれます ので、まず以下のように実際はなります(ユーザーが意識する ことはないですが)。 ID a a a b b b その後カウント処理が行われますので、 ID Num a 3 b 3 という結果になります。 ほんと説明がわるくて申し訳ないですが、 理解していただければ幸いです。 --- Sumio Ebisawa <ebisa****@aa*****> さんからのメッ セージ: > 海老澤です。新年明けましておめでとうございます。 > > > 中原様、ご説明ありがとうございます。理解が悪くて申し訳 ない > のですが・・・、 > > > > 2.の場合は、-kIDが指定されているのですが、-qも指定され て > > > いるため入力ファイルがID順に並んでいるか、並んでないか に > > 関わらず、入力ファイルのレコード順に処理されます。 > > > テキストの場合は、-kが指定されていても、 > > > 自動では並び換えてくれませんので、レコード順に処理され ま > > す。 > > > ですからテキストの場合ですと3、4は同じ結果になります > > ということは、2、3、4は同じ結果(厳密なユニーク集計結 果では > ない)ということでしょうか? > > > ----- Original Message ----- > From: "nakahara" <nakap****@yahoo*****> > To: "MUSASHI の利用者" > <musas****@lists*****> > Sent: Tuesday, December 28, 2004 10:02 PM > Subject: [MUSASHI-users 454] Re: テキストファイルと > XML テーブルで xtcount > の結果が異なる > > > > 中原です。 > > > > > > Unixのuniqコマンドと同じようですね。ご指摘の通り、ソー > > トしてから > > > > 集計したら正しく動作しました。これは「-q」のオプション > > と同じ、と > > > いう理解でよろしいのでしょうか? > > > > > -qは、-kが指定されていても、入力データのレコード順で処 理 > > > しなさいというオプションですので、上記は違う意味だと思 い > > ます。 > > > > > テキスト形式のデータを処理する場合は、-qの有無に関わら ず > > > キー項目が自動で並び換えされませんので、-qはxmlTableの と > > きに > > 意味のあるオプションだと思います。 > > > > わかりにくいと思いますので、以下に例を示します。 > > > > 入力データがxmlTableの場合 > > 1. xtcount -kID -aNum -i file1.xt -o file2.xt > > 2. xtcount -q -kID -aNum -i file1.xt -o file2.xt > > > > > 1.の場合は-kIDが指定されていますので、入力ファイルがID 順 > > > に並んでいなければ、自動で並び換えてから、カウント処理 が > > 行われます。 > > > 2.の場合は、-kIDが指定されているのですが、-qも指定され て > > > いるため入力ファイルがID順に並んでいるか、並んでないか に > > 関わらず、入力ファイルのレコード順に処理されます。 > > > > 入力データがテキストの場合 > > 3. xtcount -t -k1 -i file1.txt -o file2.txt > > 4. xtcount -q -t -k1 -i file1.txt -o file2.txt > > > > テキストの場合は、-kが指定されていても、 > > > 自動では並び換えてくれませんので、レコード順に処理され ま > > す。 > > > ですからテキストの場合ですと3、4は同じ結果になります > > > > --- Sumio Ebisawa > <ebisa****@aa*****>さんからのメッセ > > ージ: > > > 海老澤です。お世話になります。 > > > > > > > > > 連絡が遅れてしまい、申し訳ございません。 > > > > > > > テキスト形式で実行するとMUSASHIは > > > > 自動でソートしてくれませんので、 > > > > > > > Unixのuniqコマンドと同じようですね。ご指摘の通り、ソー > > トしてから > > > > 集計したら正しく動作しました。これは「-q」のオプション > > と同じ、と > > > いう理解でよろしいのでしょうか? > > > > > > > > > ----- Original Message ----- > > > From: "nakahara" <nakap****@yahoo*****> > > > To: <musas****@lists*****> > > > Sent: Wednesday, December 22, 2004 1:44 AM > > > Subject: [MUSASHI-users 447] Re: > テキストファイルと > > > XML テーブルで xtcount > > > の結果が異なる > > > > > > > > > > 中原です。 > > > > > > > > 以下で問題となるのはソートだと思います。 > > > > テキスト形式で実行するとMUSASHIは > > > > 自動でソートしてくれませんので、 > > > > > xtcountを使用する前にキー項目のソートが必要だと > > > > 思います。 > > > > > > > > > > > > xtcountの前に以下のソートを付け加えて実行して見てくだ > > さ > > > > い。 > > > > > > > > xtsort -t -k1,2 | > > > > > > > > これで問題なく動作すると思います。 > > > > > > > > --- Sumio Ebisawa <ebisa****@aa*****> > > > からのメッセー > > > > ジ: > > > > > 海老澤です。お世話になります。 > > > > > > > > > > > > > > > > > > > musashiを利用したアクセスログ解析システムを構築中です > > > > 。ログ > > > > > ファイルを「会員ID URL 時間 > > > > > 参照元」と並べ替えたログファイルを > > > > > > > > > 会員IDとURLの組み合わせで集計したいと考えています。 > > > > > > > > > > つまり > > > > > > > > > > 001 /a.html 2月1日 www.yahoo.co.jp > > > > > 001 /b.html 2月1日 www.yahoo.co.jp > > > > > 001 /a.html 2月1日 www.yahoo.co.jp > > > > > 002 /a.html 2月1日 www.yahoo.co.jp > > > > > 003 /a.html 2月1日 www.yahoo.co.jp > > > > > > > > > > というデータを > > > > > > > > > > 001 /a.html 1 > > > > > 001 /b.html 2 > > > > > 002 /a.html 1 > > > > > 003 /a.html 1 > > > > > > > > > > とまとめたいわけです。 > > > > > > > > > > txt2xt -aID,URL,TIME,REF -l test -i > > > > > 【ログファイル】| xtcut -fID,URL | > > > > > xtcount -kID,SI -a PV -o 【出力結果】 > > > > > > > > > > > > > > で問題なく処理できたのですが、これをXMLテーブルを使用 > > > > しない形 > > > > > > > > > > xtcut -f1,2-i 【ログファイル】| xtcount > -k1,2 -o > > > > > 【出力結果】 > > > > > > > > > > > > > > で実行すると、同じ会員IDとURLの組み合わせがマージされ > > > > たり > > > > > されなかったり、という現象が発生しています。 > > > > > > > > > > > > > > 検証用に少ないデータで実行すると問題ないのですが、100 > > > > 万行くらい > > > > > > > > > かけると誤差(最終的に足し合わせれば数字は合うのですが > > > > )が発生 > > > > > > > > > します。なにか、私の設定で足りないところがあるのでしょ > > > > うか? > > > > > > > > > > > > > > > > > > > > > === message truncated ==