I am trying to develop a python script since the max frequency parameter for transform api ranges from 1s to 1h.
I am using:
- python verison
3.6.8 - Elasticsearch python api:
python -m pip install elasticsearch
UPDATE 1
- ELK :
7.15.1 - testing python scripts from windows 10
tried two versions of python script.
version 1:
from elasticsearch import Elasticsearch
from elasticsearch._async.client.transform import TransformClient
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(filename="transform.log", level=logging.DEBUG, format='%(asctime)s %(message)s', datefmt='%d/%m/%Y %H:%M:%S')
logger.setLevel(logging.DEBUG)
# ES info
ES_HOST = "localhost"
ES_PORT = "9201"
try:
es = Elasticsearch([{'host':ES_HOST,'port':ES_PORT}])
logging.info(es)
except Exception as e:
logging.fatal(e)
# start transform
try:
tc = es.transform.TransformClient()
start_transform_resp = tc.start_transform('poc_aggs')
print(start_transform_resp)
except Exception as e:
logging.fatal(e)
this one result in 'TransformClient' object has no attribute 'TransformClient'.
version 2:
from elasticsearch import Elasticsearch
from elasticsearch._async.client.transform import TransformClient
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(filename="transform.log", level=logging.DEBUG, format='%(asctime)s %(message)s', datefmt='%d/%m/%Y %H:%M:%S')
logger.setLevel(logging.DEBUG)
# ES info
ES_HOST = "localhost"
ES_PORT = "9201"
try:
es = Elasticsearch([{'host':ES_HOST,'port':ES_PORT}])
logging.info(es)
except Exception as e:
logging.fatal(e)
# start transform
try:
tc = TransformClient(es)
start_transform_resp = tc.start_transform('poc_aggs')
print(start_transform_resp)
except Exception as e:
logging.fatal(e)
result in sys:1: RuntimeWarning: coroutine 'start_transform' was never awaited and the transform isn't executed in Elasticsearch.
what's the correct syntax please ? can't find an example to call the TransformClient using python.