首页 > 其他分享 >hdfs文件传输到ods层的脚本

hdfs文件传输到ods层的脚本

时间:2024-02-28 22:12:11浏览次数:24  
标签:info hdfs full ods 文件传输 base table inc

 

#!/usr/bin/python3
# coding=utf-8
import sys

from base import get_yesterday, APP
import subprocess

date = get_yesterday()

tables = ['ods_log_inc', 'ods_activity_info_full', 'ods_activity_rule_full', 'ods_base_category1_full',
          'ods_base_category2_full', 'ods_base_category3_full', 'ods_base_dic_full', 'ods_base_province_full',
          'ods_base_region_full', 'ods_base_trademark_full', 'ods_cart_info_full', 'ods_cart_info_inc',
          'ods_comment_info_inc', 'ods_coupon_info_full', 'ods_coupon_use_inc', 'ods_favor_info_inc',
          'ods_order_detail_activity_inc', 'ods_order_detail_coupon_inc', 'ods_order_detail_inc', 'ods_order_info_inc',
          'ods_order_refund_info_inc', 'ods_order_status_log_inc', 'ods_payment_info_inc', 'ods_refund_payment_inc',
          'ods_sku_attr_value_full', 'ods_sku_info_full', 'ods_sku_sale_attr_value_full', 'ods_spu_info_full',
          'ods_user_info_inc']


def get_sql(table):
    if table != 'ods_log_inc':
        sql = f"load data inpath '/origin_data/gmall/db/{table[4:]}/{date}' into table {APP}.{table} partition " \
              f"(dt='{date}'); "
    else:
        sql = f"load data inpath '/origin_data/gmall/log/topic_log/{date}' into table {APP}.ods_log_inc partition (" \
              f"dt='{date}'); "
    return sql


def import_data(table):
    sql = get_sql(table)
    print("正在传输 {:<15s}表的数据".format(table))
    subprocess.Popen(rf'hive -e "{sql}"', shell=True).communicate()
    print("传输完成 {:<15s}表的数据".format(table))


if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("参数过少,请重新调用")
        exit(0)
    if len(sys.argv) == 3:
        date = sys.argv[2]
    argc_table = sys.argv[1]
    for table in tables:
        if argc_table == table or argc_table == 'all':
            import_data(table)

调用形式
hdfs_to_ods.py all 2020-06-15

标签:info,hdfs,full,ods,文件传输,base,table,inc
From: https://www.cnblogs.com/lhk20213937/p/18042079

相关文章

  • D. Turtle Tenacity: Continual Mods
    原题链接题解将序列排序后,设最小值为k,那么\(2~n\)的每个元素都可以表示为\(nk+b,b\in[0,k-1]\)如果\(2~n\)的元素中存在\(k\)且\(b\)均为零,一定失败code#include<bits/stdc++.h>usingnamespacestd;inta[100005]={0};intmain(){intt;cin>>t;......
  • CF351D - Jeff and Removing Periods 题解
    首先做一点显然的转化:在进行第一次操作之后,可以将相同的数排在一起,这样一次就能删掉一种数。如果一开始就能删光一种数的话,那么次数就是区间颜色数,否则就是区间颜色数\(+1\)。所以现在原问题变成了两个问题:求区间内不同颜色数,判断区间内是否有某种颜色满足其出现位置构成等差数......
  • 如何提升银行网点文件传输的效率与安全性?
    金融行业串联起关于国计民生的各领域及人员,金融数据的重要性不言而喻,数据的安全性得到保障,民众和社会层面、甚至国家层面数据安全才有保障。其中银行为我国经济建设分配资金,为企业和政府作出正确的经济决策提供必要的依据,有利于国民经济持续平稳健康发展。银行网点文件传输是一个......
  • [Rust] module with public and private methods
    Methods:modsausage_factory{//privatemethodfnget_secret_recipe()->String{String::from("Ginger")}//publicmethodpubfnmake_sausage(){get_secret_recipe();println!("sausage!&qu......
  • hdfs基本命令
    创建目录hadoopfs–mkdir[-p]<path>查看目录下的内容hadoopfs–ls[-h][-R][<path>]-h人性化显示文件大小-R递归查看指定目录及子目录上传文件hadoopfs–put[-f][-p]<localsrc><dst>-f覆盖目标文件(若文件已存在)-p保留访问和修改时间、......
  • Modscan32 软件最全使用详解
    软件使用手动连接点击菜单栏”连接设置(Connection)“->”连接(Connect)“,弹出连接配置窗口。在”使用的连接”那里选择:RemotemodbusTCPServer RemoteTELNETServerDirectConnectiontoCOM1DirectConnectiontoCOM2…DirectConnectiontoCOM32备注:”Direct......
  • 在k8S中, PodSecurityPolicy机制是什么?
    PodSecurityPolicy(PSP)是Kubernetes中的一个集群级别的安全机制,它允许管理员为集群中的Pod定义和实施一组详细的准入控制策略。通过PodSecurityPolicy,集群管理员可以精细地控制哪些类型的Pod可以被创建或运行在集群内,以防止不安全的容器配置和潜在的安全威胁。具体来说,PodSecu......
  • 在k8S中,PodSecurityPolicy 机制能实现哪些安全策略?
    PodSecurityPolicy(PSP)在Kubernetes中能够实现以下的安全策略:运行时用户和组限制:确保容器以非root用户身份运行,或者限制容器可以使用的用户或组ID范围。容器能力控制:允许或禁止特定的Linux容器能力(capabilities),从而限制容器内进程的能力范围。主机命名空......
  • both methods have same erasure, yet neither overrides the other
    泛型,作为JDK5时代引入的”语法糖“,在编译的时候是会被抹除的,换言之,specialSort(List<Dog>)和specialSort(List<Apple>)在编译时都会变成specialSort(List),因此不符合重载的原则(变量名相同、参数类型或数量不同)。参考:https://blog.csdn.net/m0_37676618/article/details/106714182......
  • 虚拟机VMware的文件传输
    大致分为两类情况:1、虚拟机是Windows系统Windows系统采用共享文件夹的方式现在宿主机上,即物理机上新建一个文件夹 如下图: 点击文件夹的属性,里面有共享的选项若发现不成功,可能是windows系统自带的“网络发现”功能未开启之后来到虚拟机的设置按如下图的配置后即可在虚......