|
@@ -0,0 +1,84 @@
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+from odps import ODPS
|
|
|
+import argparse
|
|
|
+
|
|
|
+ODPS_CONFIG = {
|
|
|
+ 'ENDPOINT': 'http://service.cn.maxcompute.aliyun.com/api',
|
|
|
+ 'ACCESSID': 'LTAIWYUujJAm7CbH',
|
|
|
+ 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
|
|
|
+}
|
|
|
+
|
|
|
+def check_data(project, table, partition) -> int:
|
|
|
+ """检查数据是否准备好,输出数据条数"""
|
|
|
+ odps = ODPS(
|
|
|
+ access_id=ODPS_CONFIG['ACCESSID'],
|
|
|
+ secret_access_key=ODPS_CONFIG['ACCESSKEY'],
|
|
|
+ project=project,
|
|
|
+ endpoint=ODPS_CONFIG['ENDPOINT'],
|
|
|
+ connect_timeout=3000,
|
|
|
+ read_timeout=500000,
|
|
|
+ pool_maxsize=1000,
|
|
|
+ pool_connections=1000
|
|
|
+ )
|
|
|
+ try:
|
|
|
+ t = odps.get_table(name=table)
|
|
|
+ check_res = t.exist_partition(partition_spec=f'dt={partition}')
|
|
|
+ if check_res:
|
|
|
+ sql = f'select * from {project}.{table} where dt = {partition}'
|
|
|
+ with odps.execute_sql(sql=sql).open_reader() as reader:
|
|
|
+ data_count = reader.count
|
|
|
+ else:
|
|
|
+ data_count = 0
|
|
|
+ except Exception as e:
|
|
|
+ print("error:" + str(e))
|
|
|
+ data_count = 0
|
|
|
+ return data_count
|
|
|
+
|
|
|
+
|
|
|
+def check_origin_hive(args):
|
|
|
+ project = "loghubods"
|
|
|
+ table = "alg_recsys_view_sample_v2"
|
|
|
+ partition = args.partition
|
|
|
+ count = check_data(project, table, partition)
|
|
|
+ if count == 0:
|
|
|
+ print("1")
|
|
|
+ exit(1)
|
|
|
+ else:
|
|
|
+ print("0")
|
|
|
+def check_item_hive(args):
|
|
|
+ project = "loghubods"
|
|
|
+ table = "alg_recsys_video_info"
|
|
|
+ partition = args.partition
|
|
|
+ count = check_data(project, table, partition)
|
|
|
+ if count == 0:
|
|
|
+ print("1")
|
|
|
+ exit(1)
|
|
|
+ else:
|
|
|
+ print("0")
|
|
|
+def check_user_hive(args):
|
|
|
+ project = "loghubods"
|
|
|
+ table = "alg_recsys_user_info"
|
|
|
+ partition = args.partition
|
|
|
+ count = check_data(project, table, partition)
|
|
|
+ if count == 0:
|
|
|
+ print("1")
|
|
|
+ exit(1)
|
|
|
+ else:
|
|
|
+ print("0")
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ parser = argparse.ArgumentParser(description='脚本utils')
|
|
|
+ parser.add_argument('--excute_program', type=str, help='执行程序')
|
|
|
+ parser.add_argument('--partition', type=str, help='表分区')
|
|
|
+ args = parser.parse_args()
|
|
|
+ if args.excute_program == "check_origin_hive":
|
|
|
+ check_origin_hive(args)
|
|
|
+ if args.excute_program == "check_item_hive":
|
|
|
+ check_item_hive(args)
|
|
|
+ if args.excute_program == "check_user_hive":
|
|
|
+ check_user_hive(args)
|
|
|
+ else:
|
|
|
+ print("无合法参数,验证失败。")
|
|
|
+ exit(999)
|
|
|
+
|