mdbq 1.3.0__tar.gz → 1.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mdbq-1.3.0 → mdbq-1.3.2}/PKG-INFO +1 -1
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/df_types.py +5 -1
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/mysql_types.py +8 -5
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/query_data.py +9 -6
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/mysql.py +8 -6
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/PKG-INFO +1 -1
- {mdbq-1.3.0 → mdbq-1.3.2}/setup.py +1 -1
- {mdbq-1.3.0 → mdbq-1.3.2}/README.txt +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/__version__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/aggregation.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/optimize_data.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/bdup/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/bdup/bdup.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/clean/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/clean/data_clean.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/company/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/company/copysh.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/get_myconf.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/products.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/set_support.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/update_conf.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/dataframe/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/dataframe/converter.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/log/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/log/mylogger.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mongo/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mongo/mongo.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/s_query.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/year_month_day.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/porxy.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/pov_city.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/ua_sj.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/pbix/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/pbix/pbix_refresh.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/pbix/refresh_all.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/spider/__init__.py +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/SOURCES.txt +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/dependency_links.txt +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/top_level.txt +0 -0
- {mdbq-1.3.0 → mdbq-1.3.2}/setup.cfg +0 -0
@@ -48,7 +48,11 @@ class DataTypes:
|
|
48
48
|
}
|
49
49
|
}
|
50
50
|
self.path = set_support.SetSupport(dirname='support').dirname
|
51
|
-
self.
|
51
|
+
self.system_name = None
|
52
|
+
if self.system_name:
|
53
|
+
self.json_file = os.path.join(self.path, f'{self.system_name}_df_types.json')
|
54
|
+
else:
|
55
|
+
self.json_file = os.path.join(self.path, 'df_types.json')
|
52
56
|
if not os.path.isdir(self.path):
|
53
57
|
os.makedirs(self.path)
|
54
58
|
if not os.path.isfile(self.json_file):
|
@@ -46,11 +46,12 @@ class DataTypes:
|
|
46
46
|
'数据库量': 0,
|
47
47
|
'集合数量': 0,
|
48
48
|
'字段量': 0,
|
49
|
-
'数据简介': '
|
49
|
+
'数据简介': '记录数据库各表的数据类型信息',
|
50
50
|
}
|
51
51
|
}
|
52
52
|
self.path = set_support.SetSupport(dirname='support').dirname
|
53
|
-
self.
|
53
|
+
self.system_name = 'home_lx'
|
54
|
+
self.json_file = os.path.join(self.path, f'mysql_types_{self.system_name}.json')
|
54
55
|
if not os.path.isdir(self.path):
|
55
56
|
os.makedirs(self.path)
|
56
57
|
if not os.path.isfile(self.json_file):
|
@@ -149,7 +150,7 @@ class DataTypes:
|
|
149
150
|
return {}, cl, None, None # 返回这些结果的目的是等添加完列再写 json 文件才能读到 types 信息
|
150
151
|
|
151
152
|
|
152
|
-
def mysql_all_dtypes(db_name=None, table_name=None, path=None):
|
153
|
+
def mysql_all_dtypes(db_name=None, table_name=None, path=None, system_name=None):
|
153
154
|
"""
|
154
155
|
更新笔记本 mysql 中所有数据库的 dtypes 信息到本地 json
|
155
156
|
"""
|
@@ -206,7 +207,9 @@ def mysql_all_dtypes(db_name=None, table_name=None, path=None):
|
|
206
207
|
time.sleep(0.5)
|
207
208
|
|
208
209
|
d = DataTypes()
|
209
|
-
|
210
|
+
if system_name:
|
211
|
+
d.system_name = system_name # 影响 json 文件名
|
212
|
+
# d.json_file = os.path.join(path, f'mysql_types.json') # # json 保存位置
|
210
213
|
for result in results:
|
211
214
|
for db_n, table_n in result.items():
|
212
215
|
# print(db_n, table_n, db_name, table_name)
|
@@ -242,5 +245,5 @@ def mysql_all_dtypes(db_name=None, table_name=None, path=None):
|
|
242
245
|
if __name__ == '__main__':
|
243
246
|
# 更新 mysql 中所有数据库的 dtypes 信息到本地 json
|
244
247
|
mysql_all_dtypes(
|
245
|
-
path='/Users/xigua/Downloads',
|
248
|
+
path='/Users/xigua/Downloads', system_name='company',
|
246
249
|
)
|
@@ -495,7 +495,7 @@ class GroupBy:
|
|
495
495
|
df.to_excel(os.path.join(path, filename + '.xlsx'), index=index, header=header, engine=engine, freeze_panes=freeze_panes)
|
496
496
|
|
497
497
|
|
498
|
-
def data_aggregation(service_databases=[{}]):
|
498
|
+
def data_aggregation(service_databases=[{}], months=1, system_name=None,):
|
499
499
|
"""
|
500
500
|
1. 从数据库中读取数据
|
501
501
|
2. 数据聚合清洗
|
@@ -504,7 +504,7 @@ def data_aggregation(service_databases=[{}]):
|
|
504
504
|
for service_database in service_databases:
|
505
505
|
for service_name, database in service_database.items():
|
506
506
|
sdq = MysqlDatasQuery(target_service=service_name) # 实例化数据处理类
|
507
|
-
sdq.months =
|
507
|
+
sdq.months = months # 设置数据周期, 1 表示近 2 个月
|
508
508
|
g = GroupBy() # 实例化数据聚合类
|
509
509
|
# 实例化数据库连接
|
510
510
|
username, password, host, port = get_myconf.select_config_values(target_service=service_name, database=database)
|
@@ -558,7 +558,8 @@ def data_aggregation(service_databases=[{}]):
|
|
558
558
|
db_name=db_name,
|
559
559
|
table_name=table_name,
|
560
560
|
drop_dup=False,
|
561
|
-
icm_update=unique_key_list
|
561
|
+
icm_update=unique_key_list,
|
562
|
+
system_name=system_name,
|
562
563
|
) # 3. 回传数据库
|
563
564
|
res = g.performance(bb_tg=True) # 盈亏表,依赖其他表,单独做
|
564
565
|
m.df_to_mysql(
|
@@ -566,7 +567,8 @@ def data_aggregation(service_databases=[{}]):
|
|
566
567
|
db_name='聚合数据',
|
567
568
|
table_name='_全店商品销售',
|
568
569
|
drop_dup=False,
|
569
|
-
icm_update=['日期', '商品id'] # 设置唯一主键
|
570
|
+
icm_update=['日期', '商品id'], # 设置唯一主键
|
571
|
+
system_name = system_name,
|
570
572
|
)
|
571
573
|
res = g.performance(bb_tg=False) # 盈亏表,依赖其他表,单独做
|
572
574
|
m.df_to_mysql(
|
@@ -574,12 +576,13 @@ def data_aggregation(service_databases=[{}]):
|
|
574
576
|
db_name='聚合数据',
|
575
577
|
table_name='_推广商品销售',
|
576
578
|
drop_dup=False,
|
577
|
-
icm_update=['日期', '商品id'] # 设置唯一主键
|
579
|
+
icm_update=['日期', '商品id'], # 设置唯一主键
|
580
|
+
system_name=system_name,
|
578
581
|
)
|
579
582
|
|
580
583
|
# optimize_data.op_data(service_databases=service_databases, days=3650) # 立即启动对聚合数据的清理工作
|
581
584
|
|
582
585
|
|
583
586
|
if __name__ == '__main__':
|
584
|
-
data_aggregation(service_databases=[{'company': 'mysql'}])
|
587
|
+
data_aggregation(service_databases=[{'company': 'mysql'}], months=1, system_name='company')
|
585
588
|
# optimize_data.op_data(service_databases=[{'company': 'mysql'}], days=3650) # 立即启动对聚合数据的清理工作
|
@@ -57,7 +57,7 @@ class MysqlUpload:
|
|
57
57
|
}
|
58
58
|
self.filename = None
|
59
59
|
|
60
|
-
def df_to_mysql(self, df, table_name, db_name='远程数据源', icm_update=[], icm_up=[], df_sql=False, drop_dup=True, drop_duplicates=False, filename=None, count=None):
|
60
|
+
def df_to_mysql(self, df, table_name, db_name='远程数据源', icm_update=[], icm_up=[], df_sql=False, drop_dup=True, drop_duplicates=False, filename=None, count=None, system_name=None):
|
61
61
|
"""
|
62
62
|
将 df 写入数据库
|
63
63
|
db_name: 数据库名称
|
@@ -123,7 +123,7 @@ class MysqlUpload:
|
|
123
123
|
print(f'创建 mysql 表: {table_name}')
|
124
124
|
|
125
125
|
# 2. 列数据类型转换,将 df 数据类型转换为 mysql 的数据类型
|
126
|
-
dtypes, cl, db_n, tb_n = self.convert_dtypes(df=df, db_name=db_name, table_name=table_name)
|
126
|
+
dtypes, cl, db_n, tb_n = self.convert_dtypes(df=df, db_name=db_name, table_name=table_name, system_name=system_name)
|
127
127
|
|
128
128
|
# 有特殊字符不需转义
|
129
129
|
sql = f"SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{db_name}' AND TABLE_NAME = '{table_name}';"
|
@@ -169,11 +169,11 @@ class MysqlUpload:
|
|
169
169
|
# 返回这些结果的目的是等添加完列再写 json 文件才能读到 types 信息
|
170
170
|
# ⚠️ mysql_all_dtypes 函数默认只读取 home_lx 的数据库信息,不会读取其他系统
|
171
171
|
if cl and db_n and tb_n:
|
172
|
-
mysql_types.mysql_all_dtypes(db_name=db_name, table_name=table_name) # 更新一个表的 dtypes
|
172
|
+
mysql_types.mysql_all_dtypes(db_name=db_name, table_name=table_name, system_name=system_name) # 更新一个表的 dtypes
|
173
173
|
elif cl and db_n:
|
174
|
-
mysql_types.mysql_all_dtypes(db_name=db_name) # 更新一个数据库的 dtypes
|
174
|
+
mysql_types.mysql_all_dtypes(db_name=db_name, system_name=system_name) # 更新一个数据库的 dtypes
|
175
175
|
elif cl:
|
176
|
-
mysql_types.mysql_all_dtypes() # 更新所有数据库所有数据表的 dtypes 信息到本地 json
|
176
|
+
mysql_types.mysql_all_dtypes(system_name=system_name) # 更新所有数据库所有数据表的 dtypes 信息到本地 json
|
177
177
|
|
178
178
|
# 4. 移除指定日期范围内的数据,仅限于聚合数据使用,其他情况不要设置
|
179
179
|
if drop_duplicates and '日期' in df.columns.tolist():
|
@@ -293,7 +293,7 @@ class MysqlUpload:
|
|
293
293
|
connection.commit() # 提交事务
|
294
294
|
connection.close()
|
295
295
|
|
296
|
-
def convert_dtypes(self, df, db_name, table_name):
|
296
|
+
def convert_dtypes(self, df, db_name, table_name, system_name=None):
|
297
297
|
"""
|
298
298
|
根据本地 json 转换 df 的类型为 mysql 专有的数据类型
|
299
299
|
可能不存在本地 json 文件 (函数按指定规则转换并更新 json)
|
@@ -302,6 +302,8 @@ class MysqlUpload:
|
|
302
302
|
cols = df.columns.tolist()
|
303
303
|
# path = set_support.SetSupport(dirname='support').dirname
|
304
304
|
d = mysql_types.DataTypes()
|
305
|
+
if system_name:
|
306
|
+
d.system_name = system_name
|
305
307
|
# 从本地文件中读取 dtype 信息
|
306
308
|
dtypes, cl, db_n, tb_n = d.load_dtypes(cl='mysql', db_name=db_name, table_name=table_name)
|
307
309
|
# 可能会因为没有 json 文件, 返回 None
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|