組織内のモバイル通信コストの管理:実装

画像

移動通信のコスト管理システムの作成に関する技術的な詳細についてお話したいと思います。その概念は以前の投稿で説明されました。
例として、MTSのいずれかの月のアカウントを検討し、簡単なOLAPプロジェクトを作成します。
回答から判断すると、このトピックは非常に関連性が高いので、興味がある人は猫の下でお願いします。


アカウントファイルから取得した費用に関する情報、または各番号の概要部分から取得した情報:
画像

抽出したファイルから:

また、抽出したアカウントの「ヘッダー」から:


各地域および各プロバイダーではアカウントの形式が異なり、ユニバーサルソフトウェアは存在できないため、パーサーの説明をスキップしてこのデータをすべて抽出します。

次のようないくつかの機能に注意を払うことができます。


上記のコンポーネントに従って、データをsqlテーブルにインポートします。
生データのデータは次のようになります。

画像

トラフィックのタイプごとにすべての一意の値を選択すると、数百行のリストが表示されますが、これはアナリストの快適な仕事に貢献することはできません。
以下は、データのほんの一部です。 たとえば、各ネットワークの内部ネットワークローミングが個別に示されていることがわかります。

画像

通信のタイプに関するデータを標準の10〜15の値にする必要があります。
これは、次のように、1つの値のすべての可能なバリアントを分析して、caseステートメントを介して実行できます。

CASE WHEN rom.SERVICEDESCRIPTION LIKE '%%sms%' THEN ' ' WHEN (rom.SERVICEDESCRIPTION LIKE '%sms%' AND rom.SERVICEDESCRIPTION NOT LIKE '%%') THEN '' WHEN (((rom.SERVICEDESCRIPTION LIKE '%gprs%' OR rom.SERVICEDESCRIPTION LIKE '% %') and rom.SERVICEDESCRIPTION not LIKE '%hsdpa%') AND rom.SERVICEDESCRIPTION NOT LIKE '%%') THEN 'gprs' WHEN ((rom.SERVICEDESCRIPTION LIKE '%%gprs%' OR rom.SERVICEDESCRIPTION LIKE '%% %') and rom.SERVICEDESCRIPTION not LIKE '%%hsdpa%') THEN ' gprs' WHEN ((rom.SERVICEDESCRIPTION LIKE '%hsdpa%') AND rom.SERVICEDESCRIPTION NOT LIKE '%%') THEN 'hsdpa' WHEN (rom.SERVICEDESCRIPTION LIKE '%%hsdpa%') THEN ' hsdpa' WHEN ((rom.SERVICEDESCRIPTION LIKE '% %' OR rom.SERVICEDESCRIPTION LIKE '%%%' OR rom.SERVICEDESCRIPTION LIKE '%. %' OR rom.SERVICEDESCRIPTION LIKE '% , , WAP  %') AND rom.SERVICEDESCRIPTION NOT LIKE '%%') THEN ' ' WHEN (rom.SERVICEDESCRIPTION LIKE '%% %' OR rom.SERVICEDESCRIPTION LIKE '%%%%' OR rom.SERVICEDESCRIPTION LIKE '%%. %' OR rom.SERVICEDESCRIPTION LIKE '% .%') THEN '  ' WHEN rom.SERVICEDESCRIPTION LIKE '%% %' THEN '  ' WHEN ((rom.SERVICEDESCRIPTION LIKE '% %') AND rom.SERVICEDESCRIPTION NOT LIKE '%%') THEN ' ' WHEN rom.SERVICEDESCRIPTION LIKE '% %' THEN ' ' WHEN rom.SERVICEDESCRIPTION LIKE '%%' THEN '' ELSE '' END 


その結果、標準値を取得します。
画像

次に、トラフィック量によってテキスト値を数値に変換する必要があります
同じcaseステートメントを使用する

 CASE WHEN rom.serviceqtydescription LIKE '0.00 ' THEN '0' WHEN rom.serviceqtydescription LIKE '%.%.%' THEN '1' WHEN rom.serviceqtydescription LIKE ' ' OR rom.serviceqtydescription LIKE '' THEN '0' WHEN rom.serviceqtydescription LIKE '%' THEN CAST(replace(rom.serviceqtydescription, ' ', '') AS numeric(20, 2)) WHEN rom.serviceqtydescription LIKE '%.' THEN CAST(replace(rom.serviceqtydescription, ' .', '') AS numeric(20, 2)) WHEN rom.serviceqtydescription LIKE '%. 0 .' THEN CAST(replace(rom.serviceqtydescription, ' . 0 .', '') AS numeric(20, 2)) WHEN rom.serviceqtydescription LIKE '%' THEN CAST(replace(rom.serviceqtydescription, ' ', '') AS numeric(20, 2)) / 60 WHEN rom.serviceqtydescription LIKE '%' THEN CAST(replace(rom.serviceqtydescription, ' ', '') AS numeric(20, 2)) WHEN rom.serviceqtydescription LIKE '%' THEN CAST(replace(replace(rom.serviceqtydescription, ' ', ''),',','.') AS numeric(20, 2)) / 1024 WHEN (rom.serviceqtydescription LIKE '%.% ' AND rom.serviceqtydescription NOT LIKE '0.0 ') THEN CAST(replace(rom.serviceqtydescription, ' ', '') AS numeric(20, 2)) * 1024 WHEN rom.serviceqtydescription LIKE '%' THEN CAST(replace(rom.serviceqtydescription, ' ', '') AS numeric(20, 2)) when rom.serviceqtydescription = ' ' then 0 ELSE CAST(replace(rom.serviceqtydescription, ' ', '') AS numeric(20, 2)) END AS 

取得:SMSの断片、音声の分、キロバイト単位のデータ転送

要約表は次のようになります

画像

これで、金額とトラフィックのデータは算術演算の影響を受けやすくなりました。
このフォームでは、データはすでに、管理スタジオウィンドウから、またはデータベースを外部データソースとして接続しているExcelインターフェイスから分析するのに非常に適しています。
ご理解のとおり、将来のOLAPキューバのファクトテーブルを作成しました。
単純なキューブを作成するには、ファクトテーブルからディメンションを選択する必要があります。


データを個別のテーブル(int形式の個別の主キーを持つディレクトリ)に表示し、ファクトテーブルの値をディレクトリの対応する値に置き換えることが非常に望ましいです。 ディレクトリ内の値は一意である必要があります。
上記のすべてがタイムディレクトリに適用されるわけではなく、サーバー上で個別に生成されます。

OLAPプロジェクトの作成を開始します

BIDSは新しいデータマイニングプロジェクトを作成する必要があります

DWHという名前の新しいデータソースを作成する

画像

テーブルを追加するデータソースビューを作成する

画像
この例では、プロバイダーテーブルはありませんが、同じ方法で追加されます。 また、int形式フィールドのキーを使用して推奨事項に従わなかった-これは機能しますが、大量のデータを使用するとパフォーマンスに影響します。

時間測定の作成については説明しませんが、ネットワークにはこれに関する十分な情報があります。

次のステップはキューブの作成です。このために作成ウィザードを起動します
最初の画面で、選択-既存のテーブルを使用
次に、測定テーブルを選択して、ウィザードに従う必要があります

画像

画像

画像

画像

キューブを作成すると、ディメンションが自動的に追加されます
キューブは次の形式を取ります。

画像

また、時間ディメンションをダブルクリックし、必要な時間コンポーネントを属性セクションにドラッグする必要があります。

画像

また、必要に応じて、階層を作成します

画像

サーバーへのキューブのデプロイを開始できます。そのために、プロジェクトをクリックして処理を開始します。
処理後、Excelを介してキューブに接続できます。これは次のように行われます。
データ-他のソースから-分析サービスから、ウィザードでキューブを展開したサーバーの名前を入力します。

説明したソリューションは完全ではなく、SQLおよびBIの分野の専門家が多くの欠点を指摘しますが、この説明により、ビジネスインテリジェンスシステムを構築するのが初めての人でもこの作業を開始できると思います。

Source: https://habr.com/ru/post/J157871/


All Articles