初始化结构

This commit is contained in:
wuaho 2021-07-26 23:21:21 +08:00
parent 60eaf813df
commit e58621a4d2

View File

@ -1,5 +1,6 @@
import copy import copy
import pandas as pd
from settings import settings
from .valid_data import * from .valid_data import *
@ -9,6 +10,7 @@ class Sketch:
self.struct_cache = struct_cache self.struct_cache = struct_cache
self.__type_dict = dict() self.__type_dict = dict()
self.__struct_dict = dict() self.__struct_dict = dict()
self.init_tb_struct()
@property @property
def type_dict(self): def type_dict(self):
@ -30,20 +32,30 @@ class Sketch:
if self.struct_cache: if self.struct_cache:
self.struct_cache.update(db, tb, data) self.struct_cache.update(db, tb, data)
def init_tb_struct_cache(self, db, tb):
sql = f"select name,type from system.columns where database='{db}' and table='{tb}'"
data, columns = self.db_client.execute(sql, with_column_types=True, columnar=True)
res = {k: v for k, v in zip(data[0], data[1])}
self.__struct_dict[f'{db}_{tb}'] = res
self.up_tb_struct(db, tb, res)
return res
def init_tb_struct(self):
self.init_tb_struct_cache(settings.GAME, 'event')
self.init_tb_struct_cache(settings.GAME, 'user')
def get_tb_struct_cache(self, db, tb): def get_tb_struct_cache(self, db, tb):
""" """
查一条记录 取字段 和类型 取字段 和类型
:param db: :param db:
:param tb: :param tb:
:return: :return:
""" """
if self.__struct_dict.get(f'{db}_{tb}'): if self.__struct_dict.get(f'{db}_{tb}'):
return self.__struct_dict.get(f'{db}_{tb}') return self.__struct_dict.get(f'{db}_{tb}')
sql = f'select * from {db}.{tb} limit 1'
_, columns = self.db_client.execute(sql, with_column_types=True) res = self.init_tb_struct_cache(db, tb)
res = {item[0]: item[1] for item in columns}
self.__struct_dict[f'{db}_{tb}'] = res
self.up_tb_struct(db, tb, res)
return res return res
def update_user_view(self, db, tb): def update_user_view(self, db, tb):