OrcaプロジェクトはDolphinDB上にpandasAPIを実装し、ユーザーが大量のデータをより効率的に分析および処理できるようにします。
すでにパンダに精通している場合は、Orcaパッケージを使用して、DolphinDBの高性能と同時実行性を最大限に活用し、追加の学習曲線なしで大量のデータを処理できます。既存のパンダコードがすでにある場合は、既存のパンダコードに大きな変更を加えることなくOrcaに移行できます。
現在、Orcaプロジェクトはまだ開発段階にあり、急速に繰り返されています。Orcaの使用中に、GitHubの問題を通じてフィードバックをお寄せください。
Orcaのデザイン哲学
Pythonのサードパーティライブラリパンダは、構造化データを分析するための強力なツールであり、高性能、使いやすいインターフェイス、学習しやすいという特徴があり、データサイエンスや定量的ファイナンスの分野で人気があります。ただし、テラバイト規模の大量のデータを処理し始めたとき、シングルコアで実行されているパンダは不十分であるように見えました。パンダのメモリ使用量が多いことも、パフォーマンスに影響を与える制限の1つでした。より多くのプロセッサコアと複数の物理マシンがある場合、同時実行性を最大限に活用し、データ処理の効率を向上させたいと考えています。
DolphinDBは、テラバイト単位の大量のデータを複数の物理マシンに保存できる分散データ分析エンジンであり、CPUを最大限に活用して大量のデータに対して高性能な分析と計算を実行できます。同じ関数で計算を実行する場合、DolphinDBのパフォーマンスはパンダよりも1〜2桁速く、メモリフットプリントは通常パンダの1/2未満です。ただし、DolphinDBのデプロイと開発の方法は、パンダのそれとは大きく異なります。ユーザーがパンダからDolphinDBに移行する場合は、既存のコードに多くの変更を加える必要があります。幸い、DolphinDBは、DolphinDBエンジンに基づくパンダDataFrameAPIの実装であるOrcaプロジェクトの開発を開始しました。これにより、ユーザーはDolphinDBのパフォーマンス上の利点を活用しながら、パンダのプログラミングスタイルを使用して、大量のデータを効率的に分析できます。パンダのフルメモリコンピューティングと比較して、Orcaは分散ストレージとコンピューティングをサポートしています。同じ量のデータの場合、メモリ使用量は通常パンダの1/2未満です。
Orcaのアーキテクチャ
Orcaの最上層はpandasAPIであり、最下層はDolphinDBデータベースです。OrcaクライアントとDolphinDBサーバー間の通信は、DolphinDB PythonAPIを介して実現されます。Orcaの基本的な動作原理は、クライアント上のPythonを介してDolphinDBスクリプトを生成し、DolphinDB PythonAPIを介して分析および実行するためにスクリプトをDolphinDBサーバーに送信することです。OrcaのDataFrameは、対応するDolphinDBテーブルのメタデータのみを格納し、実際のストレージと計算はサーバー側で行われます。
したがって、Orcaのインターフェースにはいくつかの制限があります。
- OrcaのDataFrameの各列を混合タイプにすることはできません。また、列名は有効なDolphinDB変数名である必要があります。
- DataFrameに対応するDolphinDBテーブルがパーティションテーブルの場合、データストレージは連続的ではないため、RangeIndexの概念はなく、シリーズ全体をDataFrame列に割り当てることはできません。
- DolphinDBパーティションテーブルの場合、中央値など、分散バージョンで実装されていない一部の関数は、Orcaによって一時的にサポートされていません。
- DolphinDBのnull値メカニズムは、パンダとは異なります。Pandasはfloat型nanをnull値として使用しますが、DolphinDBのnull値は各型の最小値です。
- DolphinDBは列指向ストレージデータベースです。pandasインターフェースの場合、一部のaxis = columnsパラメーターはまだサポートされていません。
- 現在、Python関数を解析することはできません。そのため、たとえば
DataFrame.apply
、DataFrame.agg
このような関数はPython関数をパラメーターとして受け入れることができません。
Orcaとパンダの詳細な違い、およびOrcaプログラミングの注意事項については、Orcaチュートリアルを参照してください。
インストール
OrcaはLinuxおよびWindowsシステムをサポートしており、Pythonバージョン3.6以降、pandasバージョン0.25.1以降が必要です。
Orcaプロジェクトは、DolphinDB PythonAPIに統合されています。Orcaを使用するには、pipツールからDolphinDB PythonAPIをインストールします。
pip install dolphindb
OrcaはDolphinDBPython APIに基づいて開発されているため、DolphinDBconnect
サーバーを用意し、関数を介してこのサーバーに接続してから、Orcaを実行する必要があります。
>>> import dolphindb.orca as orca
>>> orca.connect(MY_HOST, MY_PORT, MY_USERNAME, MY_PASSWORD)
既製のパンダプログラムを既にお持ちの場合は、パンダのインポートを次のように置き換えることができます。
# import pandas as pd
import dolphindb.orca as pd
pd.connect(MY_HOST, MY_PORT, MY_USERNAME, MY_PASSWORD)
詳しくは