def insert self data safe False Вставка данных хранилище param keyword

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
def insert(self, data, safe=False):
"""
Вставка данных в хранилище
:param keywords: dict - словарь ключевых слов для составления имени
таблицы и ключа
:param data: dict - данные
:return: result: boolean - флаг успешности вставки
:raise
Exception - в случае, если невозможно вставить данные ни одним из
трех способов
"""
# Построим имя таблицы
table_name = self.get_table_name(data)
# Приведем к нормальному виду ключ
key_name = self.get_key_name(data)
inserted = False
if not safe:
inserted = self.insert_into_queue(table_name, key_name, data)
if not inserted:
# Если не смогли вставить в HBase
inserted = self.insert_into_hbase(table_name, key_name, data)
if not inserted:
# Очередь и HBase недоступны - пишем в файл
inserted = self.insert_into_file(table_name, key_name, data)
if not inserted:
raise Exception('Could not insert data')
return True