市場には、主に手動モードでコストを追跡できる特別な製品があります。
MS SSASに基づいて数十万枚のSIMカード用のコスト管理システムを作成した経験を共有したいと思います。
アクションの分野として、当時約12万枚のSIMカードを所有していた会社が選ばれました。その90%は、卵の形のロゴとm2にインストールされたデバイスのプロバイダーでした。
アイデア
モバイルプロバイダーとの連携を少し掘り下げた後、プロセスは次のようになりました。
- メールでの通信用のアカウントの電子版を受け取ります
- 私たちは紙のオリジナルを手に入れます
- 払う
- メールボックスがゴムではない場合、電子コピーを削除します
私はこのようなプロセスを作りたかった:
- メール用の請求書の電子版を取得します
- データベースへのロード、分析
- 不合理な費用を(プロバイダーまたはシムを使用するプロバイダーに)公開します
- 払う
解決策
最初に行うことは、データをデータベースにロードすることでした。 この組織では、データベースでAxaptaを使用し、プロバイダーからのデータを保存することにしました。 htmlアカウントからのデータがデータベースに取り込まれたプログラムコードについては説明しません。 それを書いていない、そして投稿の本質はそれではありません。
プロバイダーから提供されるHTML形式のファイルは、過去の期間の詳細と各発生数の概要の2つのコンポーネントに分かれています。 結果としての要約は、ベースにロードします。
その結果、そのようなファイルから情報を取得します。

データベースで、このタイプのテーブルを作成します。
CREATE TABLE [dbo].[month_money_traffic]( [PERIODBEGIN] [datetime] NOT NULL, -- [personalaccount] [nvarchar](20) NOT NULL, -- [phonenumber] [nvarchar](12) NULL, -- [VENDACCOUNT] [varchar](7) NULL, -- [typeconid] [varchar](50) NOT NULL, -- [traffic] [numeric](30, 7) NULL, -- [money] [numeric](32, 14) NULL -- )
そしてそこのアカウントからデータをロードします。
次のようになります。

[typeconid]フィールドは最初に標準の8〜10の値にする必要があります。そうしないと、数百の通信タイプが存在する危険があります。 プロバイダーとのほぼ同じタイプの通信は、たとえば「発信」と「発信」または「コンテンツカテゴリ..(およびカテゴリ番号)..」など、異なる方法で呼び出すことができます。
ケースを使用して完了:
case when [typeconid] like ' %' then '' case when [typeconid] like '%' then ' ' else [typeconid] end
その結果、キューブのファクトテーブルを取得します。
次に、測定値を設計する必要があります。
組織内の各SIMカードには、次のプロパティがあります。
- 場所(m2mデバイス、従業員に発行、サーバーなど)
- ステータス(アクティブ、ブロック)
- 地域サービス、販売
- プロバイダー
- 契約(請求書を支払う法的機関)
- などなど
ファクトテーブルから測定値の一部を取得します:個人アカウント、プロバイダー、通信の種類
必要なテーブルを結合してデータベースからパーツを抽出します
次に、運用ベースからリポジトリへの測定テーブルの増分補充を設定します。 ここでは、タイムスタンプcdcを使用して、変更されたデータのみを取得できます。
私のテーブルは大きくなく、通常の左結合を使用して2つのテーブルの違いを取得しました。
その結果、パラメータは「電話」フィールドに主キーを持つ1つのテーブルにまとめられました。

パラメータが不明な場合は、値を「n / a」に置き換えます。
BIDSを開き、新しいデータマイニングプロジェクトを作成します。
データソースとして、作成したテーブルにデータベースを接続します。
データソースビューで、ファクトテーブルとディメンションテーブルを追加します。
説明と同様に、さらに測定を行いました。また、別のプロジェクトのタイムテーブルも残りました。
ファクトテーブルからディメンションテーブルへのリンクを作成しますが、ディメンションテーブルのキーは物理である必要はありませんが、リレーションシップの作成時に論理として追加されます。

次に、キューブを作成します。

「キューバ」はさまざまな地域で使用されているため、権利を区別する必要があります。 これを「契約シミュレーション」ディメンションで行い、各地域に個別の役割を作成し、「測定データ」タブに次のように記述しました(ウラルの例)。

そして、「視覚的合計を有効にする」チェックボックスを有効にしてください。
その結果、各地域では、SIMカードと費用のみを見ることができます。
アナリストはExcelを介してキューブに接続し、コストを表示します。
以下は、アナリストの目を通して、これがどのように見えるかのスクリーンショットです。
インターフェイス-通常のピボットテーブル

コミュニケーションの種類ごとに3か月間の費用

その月のSim費用。対処する必要のあるはっきりと見える「ピーク」。

シムの1つのトラフィックレポート(分単位の数値)

現在、このシステムはロシア連邦の7つの地域で使用されています。
システム導入後の最初の2か月で、費用は約20%削減されましたが、これは制限ではありません。
このトピックは、OLAPキューブの作成を詳細に説明することを目的としたものではなく、多数のSIMカードを使用する企業で実装できる概念を説明するだけです。
MDXクエリを使用してシステムを改善し、「興味深い」ケースを引き出して処理することができます。
この記事に興味がある場合は、プロジェクトの技術的な詳細を展開できます。