Giter Site home page Giter Site logo

yangtzelsl / datai Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yunkillere/datai

0.0 0.0 0.0 3.52 MB

基于sqoop封装的一个通用的抽取工具,方便数据平台界面提交任务以及数据源管理

License: Apache License 2.0

Shell 23.81% Python 3.45% Java 72.74%

datai's Introduction

简单介绍

基于sqoop封装的抽取程序

封装的目的

1,配合数据平台展示界面中的数据源管理模块,方便前端从mysql获取抽取数据
2,方便通过前端界面来提交任务,只需要将相应的抽取规则写入到mysql,然后提交一个任务到azkaban就好了

背景

1,刚开始用shell写的,抽取元数据存储在一个文本文件中,在生产环境运正常行三个月
2,后来改为用shell+python写的,抽取元数据就存储到mysql中了,仅仅测试通过了,未在生产环境下使用过,如果要使用先自己测试好
3,再后来直接改为用java写了,抽取元数据也是存储在mysql中,已在生产环境正常运行三个多月了

抽取元数据存储在mysql中的表结构

主要有以下几个表:

1,database_info         存储源服务器地址,账号密码等,包括RDBMS/FTP/FILESYSTEM...
2,sqoop_info            存储抽取规则,比如增量合并、增量不合并、全量、是否压缩、是否做字段映射、并发等
3,table_timestamp       存储每个表的抽取时间,主要针对增量抽取
4,hdfs_export_info      存储从hdfs导出到rdbms中的地址
5,hdfs_export_opts      存储从hdfs导出到rdbms时的相应参数

表结构,随时都有更新,最新的参照src/sqoop.sql

代码结构介绍

shell目录:

    fullv4*.sh  纯shell,使用方法比较简单,所有的参数都在para_file文件中,para_file.xlsx是示例,脚本运行加上表名就可以了
    fullv5.sh   是shell+python版本,所有参数都在mysql中使用方法和上面一样
	
src目录:
    java版本的抽取,针对上面的版本进行改造,改成了java,使用方法也一样,打成jar包,后面加表名就可以了

java开发环境

1,idea
2,java 1.7
3,sshxcute 1.0
4,cdh5.8.4  jars

   这里注意:不能采用cdh5.8.4之前的版本,否则sqoop导出会有问题,老版本有bug,SQOOP-2990,cdh5.8.4后修复了

目前已实现的功能

1,从RDBMS中抽取数据到hdfs
2,把清洗后的数据导出到RDBMS中
3,从分布式文件系统HDFS中抽取数据,目前仅考虑了非结构化数据,当然把结构化当作非结构化来抽取也是可以的
4,从本地文件系统中抽取数据,目前仅考虑了非结构化数据,当然把结构化当作非结构化来抽取也是可以的
5,对hdfs上的数据进行压缩

后续规划

1,计划将datax合并进来,弥补上面结构化的数据的抽取的缺失
2,增加从RDBMS中直接抽取到hbase中的支持
3,合并另外一个项目HbaseBulkLoad到当前项目中,实现从hdfs导入数据到hbase中
4,增加导入hbase后,采用solr进行二级索引的功能

datai's People

Contributors

yunkillere avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.