GCP構築について

The pen is mightier than the sword.

sample graph

GCP BigQery 大規模データ処理速度測定 考察&雑感

ttp://www.houjin-bangou.nta.go.jp/download/zenken/#csv-unicode
CSVをDL後Gドライブに入れてBigQeryで演算、該当する市区町村を抽出する処理を試してみた。

法人データ 新潟(68544x29) 6万行 10MB
GドライブUP5.12秒 / BigQery紐付け数秒 / 全ての中から同じ市区町村抽出25.43秒

法人データ 東京(1053750x29) 105万行 175MB
GドライブUP19.72秒 / BigQery紐付け5.1秒 / 全ての中から同じ市区町村抽出222.38秒(3分42.38秒)

(Gドライブにアクセスしない方法ではもっと早くできるらしい。
因みにローカルで試してみたところ、10万件でも5秒程度で出来たが、100万件だとフリーズして動かなくなった。
体感的にはデータが10万を超えたら要注意。因みにパレードの法則みたいに何故か10万という単位は色々なところで鍵になってる気がする。)


1日あれば1億2000万人、日本人全員の年金などのデータベースの簡単な処理をできるようになった。
GCPの造り自体には厳格な設計思想を感じる。とりあえず倉庫に全部突っ込んでいこうみたいな思想の対極。
良くも悪くもアカデミズムな青臭い理想主義を感じる。
慣れればこれほど楽なものはないが、慣れるまでは厳格なルールの為にやりたい事が直ぐにできないケースも多い。
結構変態的な感じ。(ローカルではファイルを生成できない所など)
perl,phpというよりはjavaっぽいという感じ。
(javaは嫌いだけどGCPは好き。pythonっぽいとこもあるからかもww)

サービスに実装する際は、100万行以上だと検索するだけでも数分かかるので、勿論、搦め手を使わないといけない。
予めGAE、BigQery、などでGCSに大量な静的ファイルを生成、100程度の一覧indexを繋げて用意しておくのがスタンダードか。
1万行程度まで落とせば凡そ数秒で表示できるだろう。もっと早めたければ非同期にすればいい。
個人的にはGAEだけでなくGCSにもSSLのカスタムドメインを比較的容易に付けれるのは大きかった。

振り返ってみると人工知能の学習コストが劇的に下がったのが2018年中旬だと思う。
GAEでpython3を使えるようになっただけでなく、東京大学データサイエンティストの育成講座など学ぶための媒体が多数出てきてる。
大学に行かなくてもアクセスできる情報が多くなってきていて、恐らく2015年の頃に比べると10倍以上楽になったと思う。
(2016年に推薦してもらった大学院に行こうか真剣に悩んでいたが、行く必要はなくなった。
最早、15万円程度のノートパソコン一台とインターネット接続環境があれば、どんな田舎にいても、途上国にいても
勉強するのは全く不自由しない時代になった。やる気さえあればどこにでも辿りつけると思う。)

20年近くやってきて昔なら絶対に一人では難しいかったような事が実現できるようになった。
自分自身のプログラミング能力の向上だけではなく、ハード側の演算能力が上がった事。
それを動かすための、スケーラブルなクラウドサーバーの構築が一人でも出来る様な時代に突入したのが大きい。
"If I have seen further it is by standing on the shoulders of giants."

2020年までの目標というか予定

とりあえず10万ページくらいのサイトの設計&実装、デザインはできるようになったから、残りはコンテンツ。
今まで存在した殆どのサイトは最後のコンテンツの部分が埋められなかったからCGMで補っているという構造パターンが殆ど。
コンテンツ作成にかかるコストを減らす為にCGMに頼らざるを得なかった。(初期のFacebook,twitter,インスタは完全にそう。
amazonはレビュー&画像,Googleは検索結果)。
つまり、最後のコンテンツ生成の部分が出来れば全部作れるようになる。
なので2020年までには商用で流通してるレベルのコンテンツ生成まで出来るようになる予定。

農業革命→産業革命→情報革命→第四時産業革命
労働集約→資本集約→知的集約→???

DataStoreの注意点

DataStoreをMySQLのように使おうと思って色々試したが、今のところ使いづらい。
NoSQLだから多少の使い勝手の悪さはしょうがないと思っていたが、
GCP管理画面からのGUIの使いにくさは致命的で、GUIだけなら遥かにphpMyAdminの方が優れている。
スタッフが手軽に操作とかはできない。
クラウドサーバーだから凄いみたいな考え方は単なる馬鹿だと思う。
問題を解決出来て安ければレンタルサーバーで良い。
まず、横の行が60しか表示できないから、60以上あると見えないくなる。
次に削除をしようとしても縦軸200行までしか表示できないから1000行あったとして5回以上削除を押さないといけない。
GUIを使っての使用を考えると10x100くらいのデータならこれで良いんだろうけど、ある程度大きくなるとCUIで操作するしかなくなる。
スケーラブルと言う利点はあるが、スケーラブルである事はGUIがしょぼい絶対条件では無い筈だ。
見せ方の部分は少し工夫すればできる筈なので、もう少しここの部分は改善してもらいたい。

中国からの大量不正アクセス

中国からずっと変なアクセスがあるのはわかっていて、多少はしょうがないと思い黙認してたが、
大量にアクセスされすぎててクラウドサーバーで請求される額が膨れ上がっていた。
流石に苛ついたので、ファイヤーウォールで中国のIPアドレス全部ブロックした。
ブロックする前にどんな所がやっているのか不思議だったので調べてみたら、
中国の自称SEO会社がやっていたらしい。
正直5000以上のIPアドレスを全部ブロックしていくのが凄くしんどかった。
以前、別のサーバーでも日本の某SEO会社が同じような手口でやっていたので間違いないと思う。
いずれも、正直なところ、そんな方法では完全にSEOなんて今時、効果ないだろう手法。
因みに不正アクセス禁止法で違法な事をされても、警察が動くことは余程話題にならないと無い。
WEBをやっていると性善説ではサイトが攻撃されまくってしまうので、
残念ながら性悪説を前提に作るしかない。
そんな訳で、リンク先の作ったものに解説を加えて、
これからやる人の参考になればと思っていたが、読み込み以外は全部消去。

AKI.BA