阿里数据云ODPS无法在命令行窗口使用传统的INSERT语句插入数据信息,究其原因,主要是其命令行窗口实现过于简单,并为实现真正意义上的INSERT插入语句解析。
在需要对ODPS某表插入一条语句的时候,通常采用如下方式:
INSERT INTO TABLE DES_TABLE
SELECT C1,C2,C3,....
FROM(
SELECT COUNT(1) FROM DES_TABLE
)A
在这种方式下,ODPS会将此SQL放入ODPS进行解析,生成DAG作业,然后一步步地执行。这种方式插入数据,其响应时间通常是单笔数据5到10秒左右,如果是插入大量数据,显然无法容忍。此时,需要采用文件导入的方式进行,例如通过DSHIP进行数据导入。
sh ./odps-dship/dship upload -p project_test aa.dat TABLE_AA -s true -fd "," -ni "NULL";
ODPS导入的速度是非常快的,通常至少可达到5000笔/秒。
DSHIP和ODPS命令行窗口同样是基于ODPS的API进行开发,为何差距如此之大呢?经过对DSHIP的源码了解,其实现原理本质上是采用ODPS Tunnel直接将数据经过Profobuf批量数据写入ODPS,无需像ODPS命令行窗口执行SQL那样需要进行作业解析,DAG作业一步步地慢慢执行。
与DSHIP相类似地,ODPS-JDBC也采用了ODPS Tunnel进行数据批量写入。因此,如果需要从应用程序向ODPS插入数据,建议采用ODPS-JDBC批量写的方式,这种方式的写入效率可与DSHIP批量导入的效率相同。
话又说回来,为何ODPS-JDBC可以实现数据批量INSERT,而ODPS命令行窗口却不可以呢?原来,ODPS要求在将数据写入ODPS前,需要对数据进行预先的验证,因此INSERT过程需要分为两步:第一步,对INSERT语句进行简单验证;第二步,将数据通过Tunnel写入到ODPS。即,先提交预编译SQL(注意:ODPS要求INSERT语句中的?出现的个数必须与表的列数相同):
INSERT INTO TABLE DEST_DATE VALUES(?,?,?,?);
然后在提交待插入的数据。ODPS命令行并没有实现INSERT语句中带VALUE值的情况。(其实不难实现。)
因此,ODPS命令行窗口必须采用折中的SQL语句才能实现数据插入。进而导致ODPS写入数据非常缓慢的假象。实际上,基于ODPS Tunnel的JDBC批量插入、DSHIP导入速度是非常快速的。
希望ODPS命令行窗口能够改善为可基于ODPS Tunnel进行数据插入。
相关推荐
odps-jdbc-3.2.9-jar-with-dependencies.jar 是阿里云 MaxCompute(开放数据处理服务,ODPS)平台的 JDBC 驱动程序,专为大数据处理和分析而设计。此版本的驱动程序包含所有必要的依赖库,简化了开发人员在 Java ...
>odps-jdbc</ artifactId > < version >VERSION</ version > </ dependency > 入门 使用 ODPS JDBC 驱动程序就像使用其他 JDBC 驱动程序一样。 它包含以下几个步骤: 1. 使用Class.forName()显式加载 ...
aliyun-odps-jdbc-3.2.29jar包 是阿里云为其大数据平台 MaxCompute(也称为 ODPS:开放数据处理服务)提供的 JDBC 驱动程序。通过该驱动,开发者可以在 Java 应用程序中使用标准的 JDBC API 与 MaxCompute 平台进行...
Java连接ODPS(MaxCompute)是一项关键的技能,特别是在大数据处理和分析的场景下。ODPS,即阿里云的大数据处理服务MaxCompute,是企业级的海量数据处理平台,提供了SQL、API等多种方式进行数据操作。Java SDK是ODPS...
在实际应用中,DataHub和ODPS的结合使用能实现数据的实时流转和批量处理。例如,DataHub可以收集实时业务数据,然后通过ETL(提取、转换、加载)流程将这些数据清洗并导入到ODPS中进行离线分析,生成报表或进行深度...
这个“ODPS参考手册”是学习和使用ODPS的重要资源,它包含了ODPS的各项操作和功能的详细介绍。 在大数据领域,ODPS作为一款云端的数据仓库工具,其主要功能包括数据存储、数据处理和数据挖掘。ODPS基于Hadoop生态...
与此同时,部分对分区操作的SQL的运行效率则较低,给您带来较高的计费,例如:使用输出到动态分区(DYNAMIC PARTITION)对部分ODPS操作命令,处理分区表和非分区表时的语法有差别,详细情况请参考DDL语句及DML语句...
1.2.1至1.2.4小节分别解释了为何需要ODPS,ODPS的本质是什么,以及它的主要功能,包括数据存储、计算能力以及对大数据分析的支持。 1.3节“基本概念”是理解ODPS的基础,其中: 1.3.1 账号(Account):ODPS使用...
《ODPS权威指南:阿里大数据平台应用开发实践》是一本深度解析阿里巴巴ODPS技术的专著,旨在为读者提供全面、深入的ODPS理解和应用经验。ODPS,全称为Open Data Processing Service,是阿里巴巴集团自主研发的大数据...
而"odps-eclipse-plugin-bundle-0.16.0.zip"则是一个针对ODPS开发的Eclipse集成开发环境(IDE)插件,版本为0.16.0,方便开发者在Eclipse环境中进行ODPS相关的项目开发和管理。 该插件的安装和使用是其核心知识点之...
阿里云ODPS(Open Data Processing Service)是一款大数据处理服务,主要面向海量数据的批处理、交互式查询和分析。ODPS提供了SQL接口,使得开发者能够用熟悉的SQL语法进行大数据操作,极大地降低了大数据处理的门槛...
ODPS,全称为Open Data Processing Service,是阿里云推出的一种大数据处理服务,旨在为企业提供海量数据的存储和计算能力。《ODPS权威指南》作为最新版的参考资料,深入讲解了ODPS的核心特性和应用场景,是学习和...
这个“ODPS资料大全”压缩包很可能包含了关于ODPS的详细文档、教程、案例研究以及API参考等内容,旨在帮助用户全面理解和使用ODPS。 ODPS的核心功能包括: 1. **大数据存储**:ODPS提供了海量数据的存储能力,支持...
2. **数据导入**:讲解如何将数据导入到ODPS Project中,可能涉及数据源的准备、上传方法、数据格式转换等内容。 3. **数据处理**:包括SQL查询、数据清洗、数据分析等,展示如何利用ODPS的强大计算能力进行数据...
阿里开放数据处理服务ODPS是一款基于云计算的数据处理和分析平台,旨在帮助企业解决大数据处理和分析的问题。ODPS提供了一站式的数据处理和分析服务,使用户可以快速构建大数据应用程序。 背景与概况: 随着大数据...
ODPS 提供海量数据处理及分析服务,让用户远离大数据运算烦恼。 开放数据处理服务(Open Data Processing Service,ODPS)是基于飞天分布式系统... 安全:ODPS 提供了功能强大的安全服务,为用户的数据安全提供保护
java采用jdbc连接neo4j所需要jar
本实践主要围绕ODPS MapReduce的实现原理和应用展开,下面将详细介绍相关知识点。 1. **ODPS概述** ODPS是一个分布式数据仓库系统,专门设计用于存储和处理PB级别的数据。它提供了SQL-like接口,让用户可以方便地...
阿里云ODPS机器学习平台,简称PAI,是构建在阿里云ODPS计算服务之上的一个全面的机器学习解决方案。这个平台旨在简化大数据处理、建模、离线预测以及在线预测的过程,为算法开发者和使用者提供了一个高效且易用的...
ODPS MapReduce在实际应用中,广泛服务于大数据竞赛、ETL(提取、转换、加载)、特征提取等场景,例如在快的打车项目中,用于实时数据分析和政府、公众事业项目的决策支持。然而,随着大数据处理需求的不断增长,...