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?

SpeeDBee SynapseでPostgreSQLエミッタを作成してみた!

Posted at

概要
・Raspberry Pi Model 4(bookworm)で稼働しているSpeeDBee Synapseに、Pythonを使ってPostgreSQLへデータ登録するエミッタを作成してみます。登録するデータを取得するリソースコレクタは設定済です。

1)PostgreSQLをインストールします。
・ここでは、Synapseが稼働している、Raspberry PiにPostgreSQL(バージョン15)をインストールします。

1.JPG

・PostgreSQLの管理ユーザのパスワードを設定し、管理ユーザにログインします。

2.JPG

・一般ユーザーを作成し、オーナーになるデータベース(testdb)を作成します。一般ユーザのパスワードを設定し、データベースに接続後、権限を付与します。

3-create-user.JPG

・一般ユーザで接続し、テーブル作成、データ挿入、データ検索が可能か確認します。

4.JPG

※以上で、登録先PostgreSQLのセットアップが完了しました。

2)Synapseのカスタムコンポーネントを作成します。
・ドキュメントの付録にある、Python-APIリファレンスを参考に作成します。

5-doc.JPG

・ドキュメントだけでは、理解しづらいのでサンプルプログラムを参考にしてください。

6-sample.JPG

・「サンプルカスタムコンポーネントのダウンロード」をクリックすると、2つのファイルがダウンロードされます。read_and_log.pyは、入力ポートと出力ポートの両方を備えたサンプルなので、エミッタを作るには最適です。

6.5-ファイル.JPG

・サンプルの先頭には、importするモジュールや、クラス定義をします。UUIDにはユニークな値を設定してください。(他のカスタムコンポーネントと重複しないように)

7-import.JPG

・出力カラムの設定です。カラム名とデータ型を指定します。

8-create-col.JPG

・入力データ情報を取得します。

9-input-col.JPG

・出力データは、タイムスタンプ付きで出力します。

9-insert.JPG

・PostgreSQLにPythonでアクセスするには、psycopg2モジュールをインポートする必要があります。サンプルを参考にPostgreSQLエミッタを作成しました。

10-psql-emitta.JPG

・PostgreSQLエミッタのパラメータには、PostgreSQL接続情報、テーブル名、指定テーブルが無い場合に作成するかの指定をします。パラメータ設定の為に、カスタムUI機能を使い、JSONファイルを登録します。

11-json.JPG

3)カスタムコンポーネントをSynapseに登録します。
・Edit Modeにして、設定メニューからカスタム(Python)を選択します。

12-設定メニュー.JPG

・Pythonモジュールにバイナリ形式のpsycopg2モジュール、psycopg2-binaryを指定して「追加」ボタンをクリックします。

13-psycopg2.JPG

・確認ダイアログが表示されまうので、「はい」をクリックします。

14-psycopg2-yes.JPG

・Pythonモジュールにpsycopg2-binaryが表示されている事を確認し、カスタムコンポーネントの「追加」ボタンをクリックします。

15-psycopg2-binary.JPG

・Pythonで作成したpsql_emitter_cui.pyファイルを選択するとカスタムコンポーネントの一覧に追加されます。

16-emita-added.JPG

・「UI設定」ボタンをクリックして、「登録」ボタンでJSONファイルを登録します。

17-customui-before.JPG

・「閉じる」をクリックして登録を完了します。

18-customui-after.JPG

・確認ダイアログが表示されますので、「はい」をクリックします。

19-confarm.JPG

・Emitterを開くと、PostgreSQLエミッタが追加されていますので、パネルにドラッグ&ドロップすると、パラメータ設定画面が表示されます。

20-PostgreSQLせってい.JPG

4)PostgreSQLエミッタを起動します。
・設定画面にPostgreSQL接続情報とテーブル名、テーブル自動作成:ONにして保存します。

21-起動前.jpg

・リソースコレクタを起動し、リソースコレクタの出力ポートと、PostgreSQLエミッタの入力ポートを繋ぎ、PostgreSQLエミッタを起動します。

23-go.JPG

5)pgAdminツールでPostgreSQLのデータを確認します。
・作業PCにpgAdmin4をインストールし、起動します。

1-pgadmin.JPG

・クイックリンクにある「新しいサーバを追加」をクリックします。

2-pgadmin.JPG

・名前を指定して、「接続タブ」を開きます

3-pgadmin.JPG

・PostgreSQLがインストールされているRaspberry PiのIPアドレスを指定し、一般ユーザ名とパスワードを指定し、「保存」ボタンをクリックします。

3-5.JPG

・データベース:testdbにある、テーブル:tbl193を右クリックし、データを閲覧/編集をクリックすると、登録されているデータを確認できます。

4-pgadmin.JPG

▶以上で、PostgreSQLエミッタの作成と動作確認が完了しました。

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?