Exemplo n.º 1
0
 def crt_tb_from_src_sys(self, src_tb_nm, src_db_cd, trgt_schm_nm='ods'):
     """
     数据同步时,源系统和目标表结构创建或者校验
     :param src_tb_nm:
     :param src_db_cd:
     :param trgt_schm_nm:
     :return:
     """
     trgt_tb_nm = self.tb_nm
     trgt_db_cd = self.conn.db_cd
     src_conn = Conn(src_db_cd)
     src_meta = src_conn.get_tb_strct(src_tb_nm)  # 获取表结构
     src_conn.close()
     if src_meta:
         if trgt_tb_nm is None:  # 如果没有设定目标表名,需要自动生成目标表名
             trgt_tb_nm = self.get_auto_el_tb_nm(schema=trgt_schm_nm)
         crt_tb_sql = crt_trgt_db_sql(src_meta, trgt_tb_nm, trgt_db_cd)
         trgt_conn = Conn(trgt_db_cd)
         rs = trgt_conn.upd_tb_strct(crt_tb_sql,
                                     schm_tb_nm=trgt_tb_nm,
                                     drop_direct=False)
         trgt_conn.close()
         return rs
     else:
         raise Exception("源数据库目标表表%s不存在" % src_tb_nm)
Exemplo n.º 2
0
def get_cols(db_cd, tb_nm):
    """
    获取字段名
    :param db_cd: 只是编号
    :param tb_nm:
    :return:
    """
    conn = Conn(db_cd)
    rs = conn.get_tb_strct(tb_nm)  # 获取表结构
    if rs:
        rs = rs['meta']['col_nm']
        cols = list(rs)
        return cols  # '"' + '","'.join(cols) + '"'
Exemplo n.º 3
0
def src_tb_sync_ods(src_tb_nm,
                    src_db_cd,
                    trgt_tb_nm=None,
                    trgt_db_cd=default_db_cd,
                    trgt_schm_nm='ods',
                    if_el_data=True):
    """
    源系统和目标表结构创建或者校验
    :param if_el_data:  是否导入数据
    :param src_tb_nm:
    :param src_db_cd:
    :param trgt_tb_nm:
    :param trgt_db_cd:
    :param trgt_schm_nm:
    :return:
    """
    src_conn = Conn(src_db_cd)
    src_meta = src_conn.get_tb_strct(src_tb_nm)  # 获取表结构
    src_conn.close()
    if src_meta:
        if trgt_tb_nm is None:  # 如果没有设定目标表名,需要自动生成目标表名
            trgt_tb_nm = get_targt_tb_nm(src_meta['tb_nm'],
                                         src_meta['db_cd'],
                                         schema=trgt_schm_nm)
        crt_tb_sql = crt_trgt_db_sql(src_meta, trgt_tb_nm, trgt_db_cd)
        trgt_conn = Conn(trgt_db_cd)
        rs = trgt_conn.upd_tb_strct(crt_tb_sql,
                                    schm_tb_nm=trgt_tb_nm,
                                    drop_direct=False)
        trgt_conn.close()
        if if_el_data:
            datax(src_tb_nm,
                  src_db_cd,
                  trgt_tb_nm,
                  write_conn=trgt_db_cd,
                  check_tb_strct=False,
                  logs_print=False)
        return rs
    else:
        raise Exception("源数据库目标表表%s不存在" % src_tb_nm)