GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

manahl

arctic – 時系列データおよびティックデータの高性能データストア

投稿日:

時系列データおよびティックデータの高性能データストア

北極のTimeSeriesとTickストア

北極は、数値データ用の高性能データストアです。 これは、他のデータ型やオプションのバージョニングのためのプラグイン可能なサポートとともに、 パンダ素朴な配列、および節約されたオブジェクトをすぐにサポートします。

Arcticは、1クライアントあたり1秒間に数百万行のクエリを実行し、ネットワーク帯域幅で〜10倍の圧縮を実現し、ディスク上で〜10倍の圧縮を実現し、 MongoDBインスタンスごとに数億の行にスケールアップできます。

北極は、2012年以降、 Man AHLで積極的に開発されています。

クイックスタート

北極をインストールする

pip install git+https://github.com/manahl/arctic.git

MongoDBを実行する

mongod --dbpath <path/to/db_directory>

バージョンストアの使用

from arctic import Arctic
import quandl

# Connect to Local MONGODB
store = Arctic('localhost')

# Create the library - defaults to VersionStore
store.initialize_library('NASDAQ')

# Access the library
library = store['NASDAQ']

# Load some data - maybe from Quandl
aapl = quandl.get("WIKI/AAPL", authtoken="your token here")

# Store the data in the library
library.write('AAPL', aapl, metadata={'source': 'Quandl'})

# Reading the data
item = library.read('AAPL')
aapl = item.data
metadata = item.metadata

VersionStoreはさらに多くの機能をサポートしています: HowTo

独自のストレージエンジンの追加

カスタムクラスをライブラリタイプとしてプラグインするのは簡単です。 この例は、この方法を示しています。

コンセプト

図書館

Arcticは名前空間のデータライブラリを提供しています。 これらのライブラリは、 ソースユーザー、またはその他のメトリック(例えば、頻度:End-Of-Day、Minute Barsなど)によってバケットデータを許可します。

Arcticはユーザーごとに複数のデータライブラリをサポートしています。 ユーザー(または名前空間)はMongoDBデータベースにマップされます(mongo認証の粒度)。 ライブラリ自体は、データベース内のいくつかのコレクションで構成されています。 ライブラリは次のようになります。

  • user.EOD
  • user.ONEMINUTE

ライブラリはPythonクラスにマップされます。 MongoDBのすべてのライブラリデータベースには接頭辞 ‘arctic_’

ストレージエンジン

北極には3つのストレージエンジンが含まれます:

  • VersionStore :キー値でバージョン化されたTimeSeriesストア。 それはサポートしています:
    • Pandasデータ型(他のPython型のピクルス)
    • 各データ項目の複数のバージョン。 以前のバージョンを簡単に読むことができます。
    • ライブラリ内のシンボル間でポイントインタイムスナップショットを作成する
    • ソフトクォータのサポート
    • 他のデータ型を永続化するためのフック
    • 監査対象書き込み:書き込み前後のメタデータおよびデータを保存するためのAPI。
    • 幅広いTimeSeriesデータ周波数:End-Of-Day to Minuteバー
    • HowToを参照してください
  • TickStore :列指向のティックデータベース。 ダイナミックフィールドをサポートし、チャンクはバージョン管理されません。 大きな連続的なデータを追跡するように設計されています。
  • チャンクストア :データをカスタマイズ可能なチャンクサイズで保存できるストレージタイプ。 チャンクはバージョン管理されておらず、追加および更新が可能です。

北極のストレージ実装はプラガブルです。 VersionStoreがデフォルトです。

要件

北極は現在以下のもので動作します:

  • Python 2.7,3.4,3.5,3.6
  • pymongo> = 3.0
  • パンダ
  • MongoDB> = 2.4.x

オペレーティングシステム:

  • Linux
  • マックOS
  • ウィンドウズ10

謝辞

北極は、2012年以降、 Man AHLで積極的に開発されています。

AHLデータエンジニアリングチームの作業がなければ、次のようなことはできません。

寄付を歓迎します!

ライセンス

北極はGNU LGPL v2.1でライセンスされています。 LICENSEに含まれるコピー







-manahl
-, , , , , , ,

執筆者: