0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

特徴量エンジンKaskadaのインストール

Posted at

はじめに

先日、以下の記事を発表しました。

新しいテクノロジーに触れる時はいつでも楽しいものです。
中でも新しいプログラミング言語(のパラダイム)を学ぶことは、特別に楽しいことです。

ということで、まだまだ勉強中ですが、公式ドキュメントの学習過程の記録として、以下の記事をまとめてみました。

本稿情報のソースとして、下記ドキュメントを参照ください。

Kaskada はイベント処理エンジンとでも呼ぶことができます。
このイベント処理エンジンは、次の 2 つの主要コンポーネントで構成されます。

  • kaskada-engineコンポーネント:イベント データを変換するためのステートフル コンピューティング エンジン
  • kaskada-manager: クライアントと通信するためのステートフル API (オプションの) 。

Python で Kaskada を使用する

Kaskada を Python で使用するには、Python バージョン 3.6 以降がインストールされている必要があります。

pip を使用した Kaskada のインストール

Kaskadaは以下のようにpipコマンドを利用してインストールすることができます。

pip install kaskada

Kaskada がインストールされました。Kaskada は、ローカル セッションを作成することでローカルで使用できます。

Python でローカル Kaskada セッションを作成する

from kaskada.api.session import LocalBuilder
session = LocalBuilder().build()

ローカル セッションを作成すると、Kas​​kada サービスが、非永続的な Python サブプロセスとして実行されます(初回実行時には、ここで必要なコンポーネントがインストールされます)。

既存の Kaskada プロセスに接続するには、適切なエンドポイントでクライアントを初期化します。

Python でリモート Kaskada セッションを作成する

from kaskada import client
client.init(
  # The host and port of the Kaskada manager API.
  endpoint = "localhost:50051",

  # If true, TLS encryption will be required for the API connection.
  is_secure = False,

  # An (optional) string identifying the client.
  client_id = "python-client"
)

詳細については、Kaskada Python クライアントのドキュメントを参照してください。

IPython (Jupyter) で Kaskada を使用する

IPython は、Python コード ブロックを評価するために Jupyter や他のノートブックによって使用される対話型 Python ランタイムです。IPython は、コード ブロックの解釈方法をカスタマイズするための「マジック拡張機能」をサポートしています。Kaskada は、Kaskada のクエリを簡素化するマジック拡張機能を提供します。

Jupyter ノートブック内で Kaskada を使用するには、次のソフトウェアをインストールする必要があります。

  • Python (バージョン 3.6 以降)
  • Jupyter

Kaskada の Python ライブラリには、Fenl 言語でクエリを作成できるだけでなく、クエリの結果をノートブックで受け取ってレンダリングできるようにするノートブックのカスタマイズが含まれています。これらのカスタマイズを使用するには、まずこれらのカスタマイズを有効にする必要があります。

ノートブックで fenlmagic を有効にする

%load_ext fenlmagic

これにより、拡張機能が IPython コンテキストにロードされます。

以下のように、ヘルプを表示してみて、インストールが完了したことを確認できます。

%%fenl?
  %fenl [--as-view AS_VIEW] [--data-token DATA_TOKEN] [--debug DEBUG]
            [--output OUTPUT] [--preview-rows PREVIEW_ROWS]
            [--result-behavior RESULT_BEHAVIOR] [--var VAR]

fenl query magic

optional arguments:
  --as-view AS_VIEW     adds the body as a view with the given name to all
                        subsequent fenl queries.
  --data-token DATA_TOKEN
                        A data token to run queries against. Enables
                        repeatable queries.
  --debug DEBUG         Shows debugging information
  --output OUTPUT       Output format for the query results. One of "df"
                        (default), "json", "parquet" or "redis-bulk". "redis-
                        bulk" implies --result-behavior "final-results"
  --preview-rows PREVIEW_ROWS
                        Produces a preview of the data with at least this many
                        rows.
  --result-behavior RESULT_BEHAVIOR
                        Determines which results are returned. Either "all-
                        results" (default), or "final-results" which returns
                        only the final values for each entity.
  --var VAR             Assigns the QueryResponse to a local variable with the given
                        name. The QueryResponse contains result_url, query and dataframe.

詳細については、Fenlmagic クライアントのドキュメントを参照してください。

コマンドライン (CLI) で Kaskada を使用する

コマンドラインで Kaskada を使用するには、次の 3 つのコンポーネントをインストールする必要があります。

  • Kaskada コマンドライン実行可能ファイル
  • Kaskada API を提供する Kaskada マネージャー
  • クエリを実行する Kaskada エンジン

これらはそれぞれ、 Kaskada の Github リポジトリのリリースセクションでコンパイル済みのバイナリとして入手できます。この例では、curlがインストールされていることを前提としています。

curl -s https://api.github.com/repos/kaskada-ai/kaskada/releases/latest |\
grep "browser_download_url.*" |\
grep $(uname -m | sed 's/x86_64/amd64/') |\
grep $(uname -s | tr '[:upper:]' '[:lower:]') |\
cut -d ':' -f2,3 |\
tr -d \" |\
xargs -I {} sh -c 'curl -L {} -o $(basename {}| cut -d '-' -f1,2)'

chmod +x kaskada-*

Kaskada コンポーネントの実行を簡素化するには、コンポーネントをパス内のディレクトリに移動します。まず、. 内のディレクトリのコロンで区切られたリストを出力しますPATH。

echo PATH

Kaskada バイナリを、リストされている場所のいずれかに移動します。

次の例こは、バイナリが現在作業ディレクトリにあり、 `/usr/local/binがPATHに含まれていることを前提としています。

mv kaskada-* /usr/local/bin/

OSX でのアプリケーションの認証

OSX を使用している場合は、アプリケーションのブロックを解除する必要がある場合があります。OSX は、ダウンロードしたアプリケーションがセキュリティ機能として実行できないようにします。次のコマンドを使用して、ファイルのダウンロード時にファイルに配置されたブロックを削除できます。

xattr -dr com.apple.quarantine <path to file>

これで、3 つのコンポーネントすべてを実行できるようになります。これらが正しくインストールされ、実行可能であることを確認するには、次のコマンドを実行してみてください。

kaskada-cli -h

次のような出力が表示されるはずです。

A CLI tool for interacting with the Kaskada API

Usage:
  cli [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  load        A set of commands for loading data into kaskada
  query       A set of commands for running queries on kaskada
  sync        A set of commands for interacting with kaskada resources as code

Flags:
      --config string               config file (default is $HOME/.cli.yaml)
  -d, --debug                       get debug log output
  -h, --help                        help for cli
      --kaskada-api-server string   Kaskada API Server
      --kaskada-client-id string    Kaskada Client ID
      --use-tls                     Use TLS when connecting to the Kaskada API (default true)

マネージャーとエンジンを実行して、Kaskada サービスのローカル インスタンスを開始できます。

kaskada-manager 2>&1 > manager.log 2>&1 &
kaskada-engine serve > engine.log 2>&1 &
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?