ElasticDB
ElasticDB is a base class used to connect an Elasticsearch database and manages queries.
-
class DIRAC.Core.Base.ElasticDB.ElasticDB(dbname, fullName, indexPrefix='')
Bases: DIRACDB
, ElasticSearchDB
Class for interfacing DIRAC ES DB definitions to ES clusters
-
RESULT_SIZE = 10000
-
__init__(dbname, fullName, indexPrefix='')
c’tor
- Parameters
self – self reference
dbName (str) – DIRAC name of the database for example: ‘MonitoringDB’
fullName (str) – The DIRAC full name of the database for example: ‘Monitoring/MonitoringDB’
indexPrefix (str) – it is the indexPrefix used to load all indexes
-
bulk_index(indexPrefix, data=None, mapping=None, period='day', withTimeStamp=True)
- Parameters
indexPrefix (str) – index name.
data (list) – contains a list of dictionary
mapping (dict) – the mapping used by elasticsearch
period (str) – Accepts ‘day’ and ‘month’. We can specify which kind of indexes will be created.
withTimeStamp (bool) – add timestamp to data, if not there already.
- Returns
S_OK/S_ERROR
-
clusterName = ''
-
createIndex(indexPrefix, mapping=None, period='day')
- Parameters
indexPrefix (str) – it is the index name.
mapping (dict) – the configuration of the index.
period (str) – We can specify, which kind of index will be created.
Currently only daily and monthly indexes are supported.
-
deleteByQuery(indexName, query)
Delete data by query (careful!)
- Parameters
-
-
deleteIndex(indexName)
- Parameters
indexName (str) – the name of the index to be deleted…
-
existingIndex(indexName)
Checks the existance of an index, by its name
- Parameters
indexName (str) – the name of the index
- Returns
S_OK/S_ERROR if the request is successful
-
static generateFullIndexName(indexName, period)
Given an index prefix we create the actual index name.
- Parameters
indexName (str) – it is the name of the index
period (str) – We can specify which kind of indexes will be created (day, week, month, year, null).
- Returns
string with full index name
-
getCSOption(optionName, defaultValue=None)
-
getDocTypes(indexName)
Returns mappings, by index.
- Parameters
indexName (str) – is the name of the index…
- Returns
S_OK or S_ERROR
-
getIndexPrefix()
It returns the DIRAC setup.
-
getIndexes(indexName=None)
It returns the available indexes…
-
getUniqueValue(indexName, key, orderBy=False)
- Parameters
-
- Returns
a list of unique value for a certain key from the dictionary.
-
index(indexName, body=None, docID=None, op_type='index')
- Parameters
indexName (str) – the name of the index to be used
body (dict) – the data which will be indexed (basically the JSON)
id (int) – optional document id
op_type (str) – Explicit operation type. (options: ‘index’ (default) or ‘create’)
- Returns
the index name in case of success.
-
pingDB()
Try to connect to the database
- Returns
S_OK(TRUE/FALSE)
-
query(index, query)
Executes a query and returns its result (uses ES DSL language).
- Parameters
-
-
update(index, query=None, updateByQuery=True, id=None)
Executes an update of a document, and returns S_OK/S_ERROR
- Parameters
self – self reference
index (str) – index name
query (dict) – It is the query in ElasticSearch DSL language
updateByQuery (bool) – A bool to determine update by query or index values using index function.
id (int) – ID for the document to be created.