intelligenceを壊さないでビジネスインテリジェンスシステムを作成する方法

適切なビジネス上の意思決定を行うには、会社の状況に関する最も完全で詳細な情報が必要です。 しかし、多くの場合、そのような情報は年次および四半期ごとのレポートに限定されます。



もちろん、これでは十分ではありません。 効果的な分析のために、企業は多くの場合、ビジネスインテリジェンスシステム(英語のビジネスインテリジェンス、以下-BIシステム)を実装しています。 今日、あなたの会社でBIシステムを作成するのに役立つ(そして1年前に私たち自身に役立つ)いくつかのヒントを共有したいと思います。













設計



スライスではなく生データを保持する



十分な固定スケジュールとレポートがあることを決して期待しないでください。 それどころか、管理者はより詳細なチャートを作成するように求めます。 そして、多くの改良点があります。



たとえば、カリフォルニアのシングルゲイ男性が昨年の各月に最大25歳までどれだけのお金を使ったかについてのリクエストを受け取りました。 同様の質問に答える準備を整えるには、完全なユーザープロファイルのテーブルだけでなく、支払いのテーブルも手元に用意する必要があります。



既製のスライスではなく、生データを分析します



生データを分析してみてください。 事前集計しないでください。 覚えておいてください:データを集約するとすぐに情報が失われます。



たとえば、New Yorkersの1日あたりの新しい連絡先の数に関する統計を取得する必要があります。 データ自体を直接分析すると、特定の例で結果を確認できます。誰が、いつ、誰と。



ここで発明されていない症候群を忘れる



BIシステムを作成するのは初めてではないことに注意してください。 また、多くのタスクに対して、既成のソリューションがすでに存在します。 したがって、開発の大部分は、データの収集と分析プログラムの構成に簡単に要約できます。



Badooは現在、Vectorwise列データベースとPentaho分析フロントエンドを使用しています。 したがって、ほとんどすべてがデータをデータベースにロードすることになります。



顧客を覚える



設計するシステムは、通常のマネージャーが使用します。マネージャーの「初回デリバティブ」という言葉は、耐え難い胸焼けを引き起こす可能性があります。 データへのインターフェースは非常にシンプルで明確でなければなりません。 そのため、インターフェイスを再発明すべきではありません。 あなたの前に発明されたものを見る方が良いです。



多くのBIツールには、実行中の特定のツールを確認できるデモページがあります。 BIシステムの将来のユーザーに、1つのツールがどれだけ理解されているかを評価することをお勧めします。



BIシステムの作成を遅らせないでください



BIシステムの設計、開発、実装は、かなり長く複雑なプロセスです。 これは、9人の女性が1か月以内に赤ちゃんを出産できない場合です。 BadooでのBIシステムの実装はまだ完了していませんが、最初の重要な結果は開始後わずか9か月で達成されました。 BIチームには、3人と1人のコンサルタントが含まれていました。



開発



非同期的にデータを収集する



ユーザー行動データの収集を開始する場合は、非同期で実行します。 ログに書き込むことができ、Scribeに書き込むことができます。 オブジェクトに関するデータ収集は、このオブジェクトの動作に顕著な干渉を与えることなく実行する必要があることに注意してください。 また、原則として、BIシステムの誤動作は調査中のオブジェクトに反映されるべきではありません。



ユーザーの行動に関する情報を収集するためのインフラストラクチャを開発するとき、処理された大量のデータについて知っていました。 そして、このデータはすべて、1つのデータウェアハウスで収集するために必要でした。 もちろん、このリポジトリの操作における問題は、サイトのユーザーには見えないはずです。 そのため、プライマリデータをログに書き込み、その後、別のバックグラウンドスクリプトを使用してそれらをストレージに転送することにしました。 その後、ログとパーサーはScribeサービスに置き換えられました。



正規化を忘れる



データを「非正規化」することを恐れないでください。 そのため、ユーザーがいるテーブルと支払いがあるテーブルがある場合、ユーザーと支払いのペア(2つのテーブルを接続した結果)を持つテーブルがあると便利です。 一方では、ハードデータの複製が発生します。 一方、各リクエストの複雑な「結合」操作の代わりに、一意の値をカウントする簡単な操作を取得します。



上記の表を使用した有効性の例として、昨年、女性と男性が費やした金額を示すクエリを取り上げます。



SELECT sum(money), gender FROM UserPayment WHERE gender IN ('M','F') and year(payment_date) = year(now()) GROUP BY 2
      
      







DBMSが実行するために必要なことは、1回のパスでテーブルを処理することだけなので、このクエリは簡単に「並列化」できます。



データストリームを見る



システム内のデータの動きの図を必ず自分で描いてください。 サイクル(フィードバック)がないことを確認してください。



調査中のオブジェクトがBIシステムから情報を受信することを許可しないでください。 たとえば、データを分析した後、マネージャーは特定のユーザーグループにメールでリマインダーを送信することにしました。 直接、受信者のリストをBIシステムで作成しないでください。



実装



収集したデータを確認する



BIシステムを実装するときは、着信データを確認する必要があり、これは非常に慎重に行う必要があります。 たとえば、システムのユーザーのパラメーターを取得する場合は、登録日、誕生日などの分布を必ず確認してください。 理想的には、各列または列のペアでの値の分布を確認する価値があります。



多くの場合、新しいデータを追加するときに、すべての行の列の値が同じになる状況があります。 ほとんどの場合、その理由は人的要因です。開発者はこのコラムを忘れました。



余分なデータは発生せず、繰り返しがあります



システムにインポートする必要があるデータを確認するときは、余分なデータがないことに注意してください。 データの繰り返しがあります。 そして、繰り返しは不審である必要があります。 繰り返しを事前に拒否するよりも、追加のデータを取得して同じ値を設定することをお勧めします。 これは、システムエラーの特定に役立ちます。



BadooでのBIシステムの実装中に修正されたエラーの数です。 これらは、ユーザープロファイルのエラー、都市データのエラー、さらには財務データのエラーです。



100%のコンプライアンスに努めないでください



異なるソースからのデータを比較および比較するとき、100%のコンプライアンスを追いかけないでください。 95%の一致に達した場合、これで十分である可能性が高いです。 すべてのペニーをフォローする必要があるとき、あなたはまだ会計システムを設計していません。



多くの場合、データの不一致は、同期のずれなどの客観的な理由によって発生します。 たとえば、独自の「請求」および支払いシステムでの支払いの登録時間。 12月31日の時差が1秒である場合、同じ支払が異なる年の日付になる可能性があります。



おわりに



これらのヒントは普遍的なものではなく、それぞれの例外を見つけることができます。 それらを絶対的な真実として認識する必要はありません。 それどころか、あなたが与えることができる反例が多いほど、これらのルールの本質をよりよく理解するでしょう。 また、具体的な質問がある場合は、回答を試みます。



Alexoo alexxz Eremikhin、Badooの開発者。



All Articles