Python OLAP組織

こんにちは、読者の皆様。

今日は、簡単なPythonデータ分析システムを構築する方法について説明します。 フレームワークキューブcubesviewerパッケージは、これに役立ちます。

キューブは、Pythonを使用して多次元データを操作するためのフレームワークです。 さらに、レポート作成アプリケーションの開発と一般的なデータ表示を簡素化するOLAP HTTPサーバーが含まれています。

Cubesviewerは、上記のサーバーを操作するためのWebベースのインターフェイスです。





キューブをインストールして構成する



最初に、パッケージが機能するために必要なライブラリをインストールする必要があります。



pip install pytz python-dateutil jsonschema pip install sqlalchemy flask
      
      





次に、 キューブパッケージ自体をインストールします。



 pip install cubes
      
      





実践が示しているように、現在のリポジトリのバージョン(1.0alpha2)を使用することをお勧めします



Windowsの詳細設定


Windowsで作業する場合は、 {PYTHON_DIR} \ Lib \ site-packages \ dateutil \ tz.pyファイルの40行を置き換える必要があります。

 return myfunc(*args, **kwargs).encode()
      
      









 return myfunc(*args, **kwargs)
      
      





次に、使用するプラットフォームに関係なく、jsonパーサーが正しく機能するように次の修正を追加する必要があります。 90行目から{PYTHON_DIR} \ Lib \ site-packages \ cubes-1.0alpha-py2.7.egg \ cubes \ metadata.pyに入力する必要があります。



 elif len(parts.scheme) == 1 and os.path.isdir(source): # TODO: same hack as in _json_from_url return read_model_metadata_bundle(source)
      
      







キューブのセットアップとその展開プロセスの説明



たとえば、 cubesに付属しているOLAPキューブを考えますexamples / hello_worldフォルダにあります (リポジトリから取得できます)。

私たちにとって最も興味深いのは2つのファイルです。



それらについて詳しく見ていきましょう。 次のセクションを含む場合があるslicer.iniファイルから始めましょう。



したがって、テストファイルから、サーバーがローカルマシンに配置され、5000ポートで動作することを分析します。 data.sqliteと呼ばれるローカルSQLiteデータベースがストレージとして使用されます。

サーバー構成の詳細については、ドキュメントをご覧ください

また、ファイルから、キューブのモデルの説明がmodel.jsonファイルにあることがわかります。このファイルの構造の説明は、これから取り上げます。

モデル記述ファイルは、次の論理セクションを含むjsonファイルです。



キューブディメンションのセクションは、私たちにとって興味深いものです。 その他はすべてオプションです。

ディメンションリストアイテムには、次のメタデータが含まれます。

キー 説明
お名前 次元識別子
ラベル ユーザーに表示されるディメンション名
説明 ユーザーの測定の説明
レベル 測定レベルのリスト
階層 階層リスト
default_hierarchy_name 階層ID


キューブリストアイテムには、次のメタデータが含まれています。

キー 説明
お名前 次元識別子
ラベル ユーザーに表示されるディメンション名
説明 ユーザーの測定の説明
寸法 上記の測定名のリスト
対策 対策のリスト
集合体 集約関数のリスト
マッピング 論理的および物理的属性のマークアップ


上記に基づいて、( item、ye​​ar )のモデルに2つのディメンションがあることを理解できます。 「 アイテム 」測定には3つの測定レベルがあります。



キューブのメジャーとして、 「amount」フィールドが機能します。このフィールドでは、合計と行数のカウントの機能が実行されます。

ドキュメントでキューブモデルのマーク付けの詳細をご覧ください

設定を理解したら、テストベースを作成する必要があります。 これを行うには、 prepare_data.pyスクリプトを実行する必要があります。



 python prepare_data.py
      
      





あとは、スライサーと呼ばれるキューブでテストサーバーを起動するだけです。



 slicer serve slicer.ini
      
      





その後、キューブのパフォーマンスを確認できます。 これを行うには、ブラウザバーに次のように入力できます。

localhost :5000 / cube / irbd_balance / aggregate?drilldown = year

応答として、データの集計結果を含むjsonオブジェクトを取得します。 サーバーの応答形式の詳細については、 こちらをご覧ください



cubesviewerをインストールする



キューブを構成したら、 subviewviewerのインストールに進むことができます。 これを行うには、 リポジトリをディスクにコピーします



 git clone https://github.com/nonsleepr/cubesviewer.git
      
      





そして、 / srcフォルダーの内容を目的の場所に移動するだけです。

cubesviewerはDjangoアプリケーションであるため、 Django(バージョン1.4以下)リクエストおよびdjango-pistonパッケージが必要であることに注意してください。 なぜなら このバージョンのDjangoはすでに古くなっているため、上記のリンクを使用して、バージョンDjango 1.6のサブビューアーを入手できます。

それをインストールすると、行を追加する必要があるという点で元のものとわずかに異なります allow_cors_origin: localhost:8000





その後、ファイル{CUBESVIEWER_DIR} /web/cvapp/settings.pyでアプリケーションを構成する必要があります 。 データベース設定、OLAPサーバーアドレス( CUBESVIEWER_CUBES_URL



変数)およびCUBESVIEWER_CUBES_URL



アドレス( CUBESVIEWER_BACKEND_URL



)を指定することにより

dajno-pistonに小さな修正を加えることは残っています

これで、アプリケーションをデータベースと同期できます。 これを行うには、 {CUBESVIEWER_DIR} / web / cvappから実行する必要があります。



 python manage.py syncdb
      
      





ローカルのDjangoサーバーを起動します



 python manage.py runserver
      
      





これで、ブラウザを介してCUBESVIEWER_BACKEND_URL



指定されたアドレスに移動することができます。 そして、完成した結果をお楽しみください。





おわりに



作業を説明するために、最も単純な例を取り上げました。 実稼働プロジェクトの場合、 キューブapacheuswgiなどにデプロイできることに注意してください 。 この記事を使用してcubesviewerを接続するのは難しくありません。

トピックがコミュニティにとって興味深いものである場合、今後の記事の1つで公開します。



All Articles