DatabricksとKXによる金融サービスにおける時系列データ分析

[High\-speed Financial Time\-series Analysis With KX and Databricks \- The Databricks Blog](https://www.databricks.com/blog/2021/05/25/time-series-data-analytics-in-financial-services-with-databricks-and-kx.html)の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

:::note
2021年の記事です。
:::

> これはゲストとの共著記事です。[KX](https://kx.com/)のパートナーエンジニアリングリードのConnor Gervinの貢献に感謝します。

[KX](https://kx.com/)は最近Databricksとの[パートナーシップ](https://www.prnewswire.com/news-releases/kx-partners-with-databricks-to-bring-ultra-real-time-decision-making-to-lakehouse-platform-301289734.html)を発表し、高速時系列データ分析のすべてのユースケースをカバーすることができるようになりました。本日は、ストリーミングとバッチの時系列データに対して両方のプラットフォームでどのようなインテグレーションのオプションがあるのか、なぜこれが金融サービス企業に大きなメリットをもたらすのかを説明します。

時系列データは金融サービスのいろいろな場所で活用されており、我々は新たなユースケースが、新たな開拓者に対して技術とデータの両方をもたらすものと信じています。時系列データをキャプチャ、管理、処理するためのツールがマーケットに多数存在しています。金融サービスのユースケースの特徴から、データ処理に最先端のツールを活用する必要があるだけではなく、イノベーションを継続する必要があります。これが、DatabricksとKXの間のパートナーシップを促進した力学となっています。この取り組みを通じて、我々はkdb+と[q言語](https://code.kx.com/q/)の低レーテンシーストリーミング能力と、Databricksが提供するスケーラブルなデータ+AIのプラットフォームを組み合わせることができます。金融サービスファームは、オンプレミスのkdb+インスタンスにサイロ化され、閉じ込められるのではなく、クラウドで時系列データを活用することで、イノベーションを解放し、加速することができるようになります。

単一のシンプルなレイクハウスプラットフォームでは、DatabricksはKXのユーザーがアドホック分析を行ったり、洗練された機械学習モデルをコラボレーションを通じて構築するために、最高のETLやデータサイエンスの機能を提供します。このインテグレーションによって、これまではオンプレミスに存在しておりアクセスできなかったKXデータを、MLやAIのユースケースのために、シンプルな方法でDatabricksでクラウドに取り込むことができます。KXデータによるユースケースの新たな世界に加えて、KXはDatabricksに対して、連続的なインテリジェンスやデータ駆動の意思決定をリアルタイムで実行される低レーテンシーストリーミング分析の世界を提供します。この記事では、様々なユースケースやデプロイメント設定に対して、DatabricksとKXをインテグレーションしたいと考えるユーザーが現時点で利用できる幾つかのオプションの概要を説明します。

# オプション: kdb+からblobストアのParquetやDeltaへ

[KX Insights](https://kx.com/kx-insights/)では、kdb+はそれぞれのクラウドプロバイダーのネイティブblobストレージサービス(S3、ADLS Gen2、GCSなど)に直接データを書き込むドライバーを提供しています。Databicksでは、クラウドストレージサービスの新規データを容易に認識し、処理を行うために連続的にデータをDatabricksにロードするAutoloaderの機構を備えています。そして、Databricksでは、新たな洞察、分析や機械学習オブジェクトをkdb+環境にロードできるように、ParquetやDelta Lakeとしてネイティブのblobやストレージサービスにデータを書き出すことができます。

バッチモデリングやデータに対する最適化や機械学習、優れたリスク計算の導出、値付けモデル、レートデータの作成、監視、ポートフォリオに対する提案のように、このインテグレーションが役立つ金融ユースケースは数多く存在します。KXに計算結果や値を書き戻す能力によって、kdb+がビジネスゴールを加速する低レーテンシーのストリーミングやサービスのユースケースを実現することができます。
![](https://www.databricks.com/wp-content/uploads/2021/05/kx-blog-img-1.png)

# オプション: KdbSpark Sparkデータソース

[KdbSpark](https://github.com/hughhyndman/kdbspark)は[GitHub](https://github.com/hughhyndman/kdbspark)から直接利用できるSparkのデータソースです。これは当初は広く認知されているkdb+のチャンピオンであるHugh Hyndmanによって2年前に開発されました。このインタフェースによって、同じインスタンスあるいはネットワーク接続経由の両方でDatabricksとkdb+の間で直接データやクエリーをやりとりすることを可能にします。KdbSparkによって、Databricksからkdb+に直接接続し、アドホックのクエリーや引数を持つサーバーサイド関数を実行したりすることができ、述語プッシュダウンのような更なるスピード改善をサポートすることができます。ビジネスにおける数多くのメリットの例の一つには、データソース経由でkdb+にアクセスすることで、クオンツやデータモデラーがqやkdb+を直接用いて新たな戦略や洞察を得るための探索的データ分析のために、Databricksノートブックを活用できるようになるというものがあります。
![](https://www.databricks.com/wp-content/uploads/2021/05/kx-blog-img-2.jpg)

# オプション: DatabricksクラスターにおけるKX Insights

KXとDatabricksの両方がDatabricksクラスターで分散処理を行うことができるKX Cloud Editionのコンテナ化バージョンの構築に取り組みました。Databricksを活用することで、kdb+はSparkのシンプルなインタフェースとメカニズムを用いて容易にクラウドでスケールすることができます。kdb+をスケールさせることで、すべてのクラウドプロバイダーのオブジェクトストレージに対してkdb+内でネイティブに保存されたデータに対して大量のワークロードを並列実行することができます。これによって、例えば、モンテカルロシミュレーションや回帰などの様々なkdb+のスクリプトやモデルを揮発性のクラウドコンピュートで迅速かつ容易、安価に水平にスケールさせることができ、スループットを改善し、アクションにつながる洞察を導き出す時間を劇的に短縮します。
![](https://www.databricks.com/wp-content/uploads/2021/05/kx-blog-img-3-1024x826.png)

# オプション: ODBC/JDBC/REST API経由のフェデレーションされたクエリー

さらにあります。KX Insightsは単一のインタフェース経由で複数のデータソースに対するクエリーをフェデレーションする機構を提供しており、データを格納しているそれぞれのシステムをクエリー、集計、分析できるように、kdb+とDatabricks間のクエリーを分解することができます。BIワークロードや時系列データと基礎データの相関にフォーカスしている分析においては、様々なリアルタイムデータソース、履歴データソースに対する単一のガラスペインのアクセスレイヤーを持つことが好まれます。
![](https://www.databricks.com/wp-content/uploads/2021/05/kx-blog-img-4-1024x964.png)

# オプション: Databricks API

KXでは、kdb+/q内からDatabricks RESTful APIにアクセスできるようにする一連のインタフェースを開発しました。DatabricksワークスペースAPI、SQLエンドポイントやMLflowのようなDatabricksが公開しているすべての機能にプログラムからアクセスすることができます。kdb+とqでは、オープンソースバージョンのMLflowとマネージドバージョンのMLflowの両方への接続をサポートしており、kdb+経由でモデリングや機械学習ライフサイクルを管理するためにMLflowを活用できるので、MLflow APIは非常にエキサイティングなものとなります。

# オプション: 完全なkdb+ Pythonランタイム(PyQ)

[Fusion for kdb\+](https://code.kx.com/v2/interfaces/fusion/)インタフェースコレクションの一部として、[PyQ](https://code.kx.com/v2/interfaces/pyq)は開発者に対して、一つのアプリケーションでシームレスにPythonとqのコードをインテグレーションできるようにし、Pythonプログラミング言語をkdb+データベースに取り込みます。SparkセッションでPythonランタイムを使用する際、pipでシンプルにインストールすることでPyQはPythonプロセス内部に完全なインタラクティブのkdb+環境を提供します。Python経由でのDatabricksとkdb+は、皆様のデータサイエンスや機械学習モデルをクラウドでトレーニング、実行できるようにするためのポーティングに最適なインテグレーションです。

まとめると、DatabricksとKXがインテグレーションする方法は多数存在するということです。両者の強力な技術スキルセットのコラボレーションによって、お互いのお客様に業界最高の機能を提供するためにDatabricksとKXはパートナーシップを結びました。DatabricksとKXのテクノロジーがどのようにインテグレーションし、新たなユースケースやビジネス価値創出のために時系列データを民主化するのかに関しては、それぞれの企業のコンタクトにお問い合わせください。

あるいは、MLを用いてリアルタイムの金融データから新たな洞察を導き出すことについては、Databricksの[Financial Services Industry Forum](https://www.databricks.com/session_na21/financial-services-industry-summit)でのKXの公演をお聞きください。

### Databricksクイックスタートガイド

[Databricksクイックスタートガイド](https://www.amazon.co.jp/dp/B09V1YXFVQ/)


### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)