我想问一下开发数仓用到的技术,阿里云的ADB提供了三种
- sql开发可以直接在页面执行sql,但是对复杂业务处理数据好像不太方便。
- spark jar开发,可以通过java去编写程序进行处理数据,我想请问下是有多个任务节点的话需要多个jar包去排序执行任务吗。
- notebook开发,这个是可以用到spark引擎的吗,我见里面是一个一个代码块在一起的。
我想问一下大家,平常主要通过哪种任务进行开发呢,包括开发流程,然后还有开发后要在ADB自动执行之类的
比如:通过spark jar开发,对每一个业务进行开发流程,然后上传spark jar,通过作业调度去执行jar文件。
谢谢
阿里云的MaxCompute(ADB)提供了三种开发方式:SQL开发、Spark Jar开发和Notebook开发。
SQL开发:可以直接在页面执行SQL语句,适用于简单的数据处理任务。但对于复杂的业务处理数据可能不太方便。
Spark Jar开发:通过Java编写程序进行处理数据,可以处理更复杂的业务逻辑。如果有多个任务节点,需要为每个任务节点分别打包一个Jar包,并在作业调度中指定相应的Jar包进行执行。
Notebook开发:可以使用Spark引擎进行数据处理,适合快速原型开发和数据分析。Notebook中的代码块可以一起执行,也可以单独执行。
平常的开发方式主要取决于具体的业务需求和技术栈。一般来说,对于简单的数据处理任务,可以选择SQL开发;对于复杂的业务逻辑,可以选择Spark Jar开发;对于快速原型开发和数据分析,可以选择Notebook开发。
开发流程一般包括以下几个步骤:
需求分析:了解业务需求,确定数据处理的目标和要求。
数据建模:根据需求设计数据模型,包括表结构、分区策略等。
数据处理:编写数据处理逻辑,可以选择SQL、Java或Python等编程语言。
调试测试:对编写的程序进行调试和测试,确保数据处理结果符合预期。
作业调度:将编写好的程序打包成Jar包,并通过作业调度系统进行定时执行。
监控优化:对运行中的作业进行监控,发现并解决潜在问题,优化数据处理性能。
ADB 数据仓库的信息,在日常的 ADB 数据仓库开发中常常用到的技术包括:
下面是大概的流程: