PAGE TOP

取り組み

印刷する

gawkを使う《その1》

さぼ郎
集計

大昔からある言語に「awk」というのがあります。名称は、開発者であるアルフレッド・エイホ、ピーター・ワインバーガー、ブライアン・カーニハンの3人の苗字の頭文字を取って付けられた と書かれています。

いつ作られたかというと、「1970年代後半から1980年頃開発されていた」と言いますから昭和50年前後のことと思います。PC-9801が昭和57年のことだそうですから、そのちょっと前辺りですね。そのころに作られたツールが、いまでもとても重宝しています。

vector
「gawk」のダウンロードサイトにリンク ↑

gawk windows」で検索するといくつか出てきますが、安心なところでVECTORからダウンロードします。

解凍すると中に「gawk.exe」がありますので、Cドライブの何処かにいれます。「gawk」という名前でフォルダを作って、そこに入れてもいいかも知れません。

で、使うためには「パス」を通す必要があります。まず、コントロールパネルを開きます。

コントロールパネル
「システムとセキュリティ」を選ぶ
コントロールパネル
システム」を選ぶ
コントロールパネル
左側にある「システムの詳細設定
コントロールパネル
環境変数」を選ぶ
環境変数
Path」を選んで「編集」とする
環境変数
C:gawk;」を冒頭に入れる

として、再起動すると「gawk」が動くようになります。といってもコマンドプロンプトからです。

で、何が優れているかの触りをお伝えします。

毎月、100万件以上のデータをデータベース(Access)に取り込んで、単純集計をしてExcelでグラフを作り、Accessの内部でクロス集計をして、それもExcelに出力するという処理を作っています。

ちなみに、この処理を毎月累積していくと1年間の購買件数は「14,606,877
」となり、購入金額は「157,475,328,500円」になります。

1460万人が1570億円の購入になります。市販のソフトで1460万件のクロス集計ができるソフトがないのだそうです。

Accessで作るメリットは、痩せても枯れてもデータベースだからです。デメリットは、いまだに、列数が255という制約を持っていますし、開発言語がVBAであるからなのだと思うのですがMACでは使えません。

しかし、痩せても枯れてもデータベースであるということ。Officeと連携して使えるということは、とても大きなメリットです。何でもかんでもクラウドではないわけです。

初年、Accessに取り込んだら3件の異常データが混入してしまい、排除するのが大変だったためデータベースの投入間にデータチェックをすることとしました。

それに使ったのが「gawk」です。

awkは、ストリームエディタといって、1行ずつ取り込んで加工していくツールです。1行ずつ処理をしていくから、よほどのスクリプトでもない限り、100万行だろうが1000万行だろうが、全く問題はありません。

また、「正規表現」が使えるので、正規表現」に慣れたらとても便利です。これは、また別の機会に書きます。


BEGIN{
FS=",";
}
{
buf01[$12]+=1;
}
END{
for(i in buf01)
print i "t" buf01[i];
}

冒頭の「BEGIN」では、各種の設定を宣言します。しなくても構いません。その場合はデフォルトになります。

FS」は、テキストファイルをセパレートする記号を宣言します。CSVファイルだとセパレータは半角カンマ「,」ですので、それを宣言します。セパレータをタブにするなら

FS="t";

デフォルトは、半角スペースです。

buf01[$12]+=1;

12番め(「$12」のこと)の値に対してカウントを取っています。

buf01という配列の添字に「$12」を使っているのは、このデータの場合は、12番めに都道府県が入っているので、各県別のカウントをしていることになります。

中身はたった1行です。

配列の添字に文字列を使うことが出来ます。そのやり方を「連想配列」と云うようです。別名「ハッシュ」などとも呼んでいるようです。ハッシュというのは適度に分散していると、とても高速に検索ができる仕組みです。

なぜ、ハッシュと呼ぶのかは不明ですが、配列の添字に文字列を使えることで連想と言うのは、あながち間違いでもなさそうです。

ある月のデータ件数ですが「1,214,224件」ありました。Excelでは最大で、1,048,576件ですので、集計することは出来ません。

gawk」なら、ほんの数秒で集計してくれます。pythonは、まだメリットを感じるまで使っていないのでなんとも言えませんが、awkはいまでも傑作の言語だと思っています。

何かの処理を作るとかではなく、データのチェックとか検証に使うなら実に実用的だと思います。


J-REITの中でも中堅オフィスが狙い目とのことです。

J-Reit

平均空室率をみても4%くらいまで下がっています。で、平均賃料が上がるという循環のようです。

一時、オフィスビルが随分建って、古いオフィスビルの空き室が増えるのかと思っていました。

しかしドイツ証券では、オフィス市場は悪化の局面に入ったとして「売り」という判断のようです。

また、ホテルは2016年あたりから供給過剰気味でありリスクが上がっていると判断できそうです。浅草橋から浅草あたりで大型の建築は、通りに面していればホテル、住宅地ならばマンションというのが相場です。

RIETのリスクは長期金利の上昇。日銀が馬鹿みたいな金融緩和をしている間は大丈夫だろうという見方のようです。

中国は日本の80年だに似ているとフィナンシャル・タイムズの編集長が言ってます。

と言うのは官僚主導で経済を厳しく規制し銀行業中心の官僚的な金融を作り出したが、消費者主導の経済に移行しようとしてタイミングを失敗しバブルを引き起こした。

中国は日本の二の舞いに成らないように考えているとは思うものの、結構懐疑的であると言っています。

アメリカでは規制が大幅に減っています。

トランプさんは一つの規制を作るなら二つの規制を廃止しなければなりません。9月になると債務上限の引き下げや法人税の減税など、大きな課題が目白押しのようです。

「リーダーの栞」というコーナーでサッポロビールの高島社長の推薦図書は半藤利一さんの「昭和史」なんだそうです。

永井荷風
wiki「永井荷風」にリンク ↑

経営者が昭和史を読んでいるなんて凄い余裕ですね。で、高島さんがハッとしたのが我らが永井荷風の日記に「日本現代の禍根は政党の腐敗と軍人の過激思想と国民の自覚なき三事なり」

この「自覚なき異なり」にハッとしたそうです。

政党の腐敗と軍人の過激思想」。権力を持つほどに自覚が薄れ、徳のない人間ほど歪みを見せることは、かの官房副長官であった萩生田さんや小池都知事の秘蔵っ子の野田数さんの言動や顔つきを見れば、彼らの特殊事情ではなく、凡庸な人間が権力を持ってしまうとするなら、大方の人間の「我が事」だと思います。

ワタシの立地的にはアサヒビールなんですが、たまにはサッポロビールにしてみようかと思います。

キーワード