スクリプト開発 / コネクターオブジェクト DFF.CONN / InfluxDB
InfluxDB コネクターの操作オブジェクトは、Python のサードパーティ製パッケージ influxdb(バージョン 5.3.1)のラッパーであり、主に InfluxDB へのクエリと書き込みのメソッドを提供します。 本コネクターは以下のデータベースと互換性があります。
- Alibaba Cloud 時系列データベース InfluxDB 版
本コネクターは HTTP プロトコルで接続します
DFF.CONN(...) のパラメータは次のとおりです。
| パラメータ | 型 | 必須 / デフォルト値 | 説明 |
|---|---|---|---|
connector_id |
str | 必須 | コネクター ID |
database |
str | None |
データベースを指定 |
.query(...)
InfluxQL ステートメントを実行します。パラメータは次のとおりです。
| パラメータ | 型 | 必須 / デフォルト値 | 説明 |
|---|---|---|---|
sql |
str | 必須 | InfluxQL ステートメント。バインドパラメータのプレースホルダを含めることができ、形式は $var_name |
bind_params |
dict | None |
バインドパラメータ |
database |
str | None |
今回のクエリで指定するデータベース |
dict_output |
bool | False |
各行のデータを {列名: 値} 形式に変換するかどうか |
| 例 | |
|---|---|
1 2 3 | |
| 出力例 | |
|---|---|
1 | |
| 例 2(戻り値を辞書形式に指定) | |
|---|---|
1 2 3 | |
| 出力例 | |
|---|---|
1 | |
単一のクエリは dict を返します。ドライバが複数のステートメントに対して複数の結果セットを返す場合、このメソッドは list[dict] を返します。
.query2(...)
query2(...) メソッドも InfluxQL ステートメントの実行に使用されますが、パラメータプレースホルダが異なり、疑問符 ? をパラメータプレースホルダとして使用します。パラメータは次のとおりです。
| パラメータ | 型 | 必須 / デフォルト値 | 説明 |
|---|---|---|---|
sql |
str | 必須 | InfluxQL ステートメント。パラメータプレースホルダを含めることができます。? はエスケープが必要なパラメータを示します。?? はエスケープが不要なパラメータを示します |
sql_params |
list | None |
InfluxQL パラメータ |
database |
str | None |
今回のクエリで指定するデータベース |
dict_output |
bool | False |
各行のデータを {"列名": "値"} 形式に変換するかどうか |
| 例 | |
|---|---|
1 2 3 | |
動的 SQL ステートメント
query2(...) は内部で DFF.SQL(...) を使用して SQL ステートメントを構築し、複雑な動的 SQL ステートメントの構築をサポートします。
例えば、WHERE IN (...) の値の数が不定の場合や、INSERT INTO ... VALUES ... によるデータの一括書き込みなどです。
詳細は スクリプト開発 / SQL 構築 DFF.SQL を参照してください。
.switch_database(...)
現在の操作オブジェクトが後続のリクエストで使用するデフォルトのデータベースを切り替えます。
| パラメータ | 型 | 必須 / デフォルト値 | 説明 |
|---|---|---|---|
database |
str | 必須 | データベース名 |
| 例 | |
|---|---|
1 2 | |
単一のクエリまたは書き込みにのみデータベースを指定する場合は、対応するメソッドの database パラメータを優先的に使用してください。
.write_point(...)
バージョン 1.1.13 で追加されました。
単一のデータポイントを書き込みます。パラメータは次のとおりです。
| パラメータ | 型 | 必須 / デフォルト値 | 説明 |
|---|---|---|---|
measurement |
str | 必須 | 計測 |
fields |
dict{str: str/int/float/bool} | 必須 | フィールド キー名は str である必要があります キー値は str/int/float/bool にできます |
tags |
dict{str: str} | None |
タグ キー名、キー値はどちらも str である必要があります |
timestamp |
str/int | None |
タイムスタンプ ISO 形式、例: 2020-01-01T01:02:03ZUNIX タイムスタンプ、例: 1577840523 |
database |
str | None |
今回の書き込みで指定するデータベース |
| 例 | |
|---|---|
1 2 3 | |
.write_points(...)
バージョン 1.1.13 で追加されました。
データポイントを一括書き込みします。パラメータは次のとおりです。
| パラメータ | 型 | 必須 / デフォルト値 | 説明 |
|---|---|---|---|
points |
list | 必須 | データポイントの配列 |
points[#]['measurement'] |
str | 必須 | 計測 |
points[#]['fields'] |
dict{str: str/int/float/bool} | 必須 | フィールド キー名は str である必要があります キー値は str/int/float/bool にできます |
points[#]['tags'] |
dict{str: str} | None |
タグ キー名、キー値はどちらも str である必要があります |
points[#]['time'] |
str/int | None |
タイムスタンプ ISO 形式、例: 2020-01-01T01:02:03ZUNIX タイムスタンプ、例: 1577840523 |
database |
str | None |
今回の書き込みで指定するデータベース |
| 例 | |
|---|---|
1 2 3 4 5 6 7 8 | |