В классе GetDataChunk для вызова генератора, подгружающего мультисферу блоками строк (чанками), используются методы load_sphere_chunk и load_sphere_chunk_v2. Аналогичный метод есть и в классе BusinessLogic.
Описание метода load_sphere_chunk
load_sphere_chunk(
units: int = UNITS_LOAD_DATA_CHUNK,
convert_type: bool = False,
default_value: Any = None,
convert_empty_values: bool = True,
show_full: bool = False,
) -> dict:
Перед вызовом метода все элементы размерностей в мультисфере должны быть развернуты, иначе будут возвращаться неполные данные.
В методе используются следующие аргументы:
| Аргумент | Описание |
|---|---|
| units: (int) | Количество подгружаемых строк. Ожидается целое положительное число больше 0. Значение по умолчанию — 1000. |
| convert_type: (bool) | Нужно ли преобразовывать данные из типов, определенных Polymatica Analytics, к Python-типам. Значение по умолчанию — False (не нужно). |
| default_value: (Any) | Аргумент актуален только при convert_type = True. Определяет значение по умолчанию, использующееся в случае, если не удалось преобразовать исходные данные к нужному типу. Значение аргумента по умолчанию — None. |
| convert_empty_values: (bool) | Аргумент актуален только при convert_type = True. Определяет, нужно ли преобразовывать строки формата «(Пустой)»/«(Empty)» к значению в default_value. Строки, состоящие только из одних пробелов, также считаются пустыми. Значение аргумента по умолчанию — True (преобразовывать нужно). |
| show_full: (bool) | Отобразить таблицу вместе со строкой заголовков, с указанием порядковых номеров столбцов, начиная с 0, а также со строками и столбцами промежуточных и общих итогов. При наличии в мультисфере вынесенных вверх размерностей, нужно использовать show_full = True. |
Пример использования метода:
gen=session2.load_sphere_chunk(
units = 100,
show_full = True
)
for row_data in gen:
print(row_data)
или
gen=session2.load_sphere_chunk(
units = 50,
convert_type = True,
default_value = "***",
convert_empty_values = True,
show_full = False
)
for row_data in gen:
print(row_data)
В результате использования метода возвращаются словари со следующей структурой:
{порядковый номер столбца: имя столбца} //при show_full = True
{имя столбца: значение столбца}
Пример ответа:
{0: 'Тип карты', 1: 'Группа карт', 2: 'Депозит', 3: 'Оплата', 4: 'Комиссия', 5: 'Итоговая сумма'}
{'Тип карты': 'CREDIT', 'Группа карт': 'MasterCard Electronic', 'Депозит': 90511910.04997635, 'Оплата': 383355182.6405697, 'Комиссия': 16896753.458479982, 'Итоговая сумма': 473867092.69054604}
{'Тип карты': 'CREDIT', 'Группа карт': 'MasterCard Gold', 'Депозит': 687735467.219451, 'Оплата': 5169938253.766971, 'Комиссия': 162840841.17136005, 'Итоговая сумма': 5857673720.986422}
{'Тип карты': 'CREDIT', 'Группа карт': 'MasterCard Platinum', 'Депозит': 0.0, 'Оплата': 268978.7801055908, 'Комиссия': 5469.575488932431, 'Итоговая сумма': 268978.7801055908}
{'Тип карты': 'CREDIT', 'Группа карт': 'MasterCard Standard', 'Депозит': 1874098822.511719, 'Оплата': 10799352582.421396, 'Комиссия': 430297255.0884404, 'Итоговая сумма': 12673451404.933115}
{'Тип карты': 'CREDIT', 'Группа карт': 'MasterCard Unembossed', 'Депозит': 550723937.3894565, 'Оплата': 7901085674.189674, 'Комиссия': 308062515.9580696, 'Итоговая сумма': 8451809611.57913}
{'Тип карты': 'CREDIT', 'Группа карт': 'Visa Credit Gold', 'Депозит': 38080726.670410156, 'Оплата': 646081514.042684, 'Комиссия': 26211157.216829628, 'Итоговая сумма': 684162240.7130941}
{'Тип карты': '***', 'Группа карт': '***', 'Депозит': 3241150863.841013, 'Оплата': 24900082185.8414, 'Комиссия': 944313992.4686686, 'Итоговая сумма': 28141233049.68241}
{'Тип карты': 'DEBIT', 'Группа карт': 'MasterCard Gold (Currency)', 'Депозит': 11452805.000232697, 'Оплата': 587118285.6133777, 'Комиссия': 11483763.810247308, 'Итоговая сумма': 598571090.6136104}
{'Тип карты': 'DEBIT', 'Группа карт': 'MasterCard Standard', 'Депозит': 43960487.30132246, 'Оплата': 3432102298.378006, 'Комиссия': 64534503.28736727, 'Итоговая сумма': 3476062785.6793284}
{'Тип карты': 'DEBIT', 'Группа карт': 'MasterCard Unembossed (No name)', 'Депозит': 5848005.38028717, 'Оплата': 2968930226.9996653, 'Комиссия': 58216140.75267454, 'Итоговая сумма': 2974778232.3799524}
{'Тип карты': 'DEBIT', 'Группа карт': 'VISA Business', 'Депозит': 0.0, 'Оплата': 9558645.366062164, 'Комиссия': 123841.61024386808, 'Итоговая сумма': 9558645.366062164}
{'Тип карты': 'DEBIT', 'Группа карт': 'VISA Classic', 'Депозит': 228571991.47264713, 'Оплата': 7186265193.577057, 'Комиссия': 129641016.00671463, 'Итоговая сумма': 7414837185.049705}
{'Тип карты': 'DEBIT', 'Группа карт': 'VISA Electron', 'Депозит': 403486349.5223789, 'Оплата': 3698750191.2198524, 'Комиссия': 66304545.55739961, 'Итоговая сумма': 4102236540.7422314}
{'Тип карты': 'DEBIT', 'Группа карт': 'VISA Gold', 'Депозит': 76842601.98991394, 'Оплата': 2707461954.531196, 'Комиссия': 49891985.66047774, 'Итоговая сумма': 2784304556.52111}
{'Тип карты': 'DEBIT', 'Группа карт': 'Virtual Card', 'Депозит': 500.0, 'Оплата': 77928740.0, 'Комиссия': 1558235.399998784, 'Итоговая сумма': 77929240.0}
{'Тип карты': 'DEBIT', 'Группа карт': 'Visa Debit Platinum', 'Депозит': 634000.0, 'Оплата': 32497799.512895346, 'Комиссия': 503396.7402038872, 'Итоговая сумма': 33131799.512895346}
{'Тип карты': '***', 'Группа карт': '***', 'Депозит': 770796740.6667824, 'Оплата': 20700613335.198112, 'Комиссия': 382257428.82532763, 'Итоговая сумма': 21471410075.864895}
{'Тип карты': '***', 'Группа карт': '***', 'Депозит': 4011947604.5077953, 'Оплата': 45600695521.03951, 'Комиссия': 1326571421.2939963, 'Итоговая сумма': 49612643125.5473}
Описание метода load_sphere_chunk_v2
load_sphere_chunk_v2(
units: int = UNITS_LOAD_DATA_CHUNK,
) -> Tuple[list, list, list, Callable, dict]:
В методе используется аргумент units:
| Аргумент | Описание |
|---|---|
| units: (int) | Количество подгружаемых строк. Ожидается целое положительное число больше 0. Значение по умолчанию — 1000. |
Пример использования метода:
session2.load_sphere_chunk_v2(units = 100)
Метод возвращает список верхних размерностей, список левых размерностей, список заголовков, функцию-генератор для выгрузки данных мультисферы блоками и словарь с дополнительной информацией. Данные выгружаются с типами. Формат ячейки с данными: {"value": <value (str)>, "type": <тип (int)>}. Словарь с дополнительной информацией имеет следующую структуру:
{
"data_cols_count": <количество столбцов с данными>,
"data_rows_count": <количество строк с данными>,
"inter_total_hidden_dimensions": <идентификаторы размерностей со скрытыми подытогами>,
"show_global_horz_total": <отображаются ли совокупные итоги по горизонтали>,
"show_global_vert_total": <отображаются ли совокупные итоги по вертикали>,
}
Пример ответа:
([],
['Тип карты', 'Группа карт'],
[[{'value': None, 'type': 5, 'fact_id': None},
{'value': None, 'type': 1, 'fact_id': None},
{'value': None, 'type': 1, 'fact_id': None},
{'value': None, 'type': 1, 'fact_id': None}],
[{'value': 'Депозит', 'type': 4, 'fact_id': 'be5f465d'},
{'value': 'Оплата', 'type': 4, 'fact_id': 'e5e5306c'},
{'value': 'Комиссия', 'type': 4, 'fact_id': 'b106c0a0'},
{'value': 'Итоговая сумма', 'type': 4, 'fact_id': '8ce6384e'}]],
<function polymatica.business_scenarios.GetDataChunk.load_sphere_chunk_v2.<locals>.load_data_by_chunk() -> Tuple[list, list]>,
{'data_cols_count': 4,
'data_rows_count': 18,
'inter_total_hidden_dimensions': [],
'show_global_horz_total': True,
'show_global_vert_total': True})