스크립트 개발 / 커넥터 객체 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 | |