开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

hive的视图maxcompute能接吗?

hive的视图maxcompute能接吗?

展开
收起
游客vsvhp4tm5jqkk 2022-10-19 09:26:02 7712 5
10 条回答
写回答
取消 提交回答
  • 不能

    2022-12-21 15:41:06
    赞同 1 展开评论 打赏
  • MaxCompute 是面向分析的企业级 SaaS 模式云数据仓库,以 Serverless 架构提供快速、全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您可以经济并高效的分析处理海量数据。

    可以接。 使用DataWorks的数据集成,使用独享数据集成资源组,添加hive数据源,在数据同步节点转成脚本模式同步需要同步的视图就可以。

    2022-11-07 16:00:05
    赞同 展开评论 打赏
  • 能,hive得用独享数据集成资源组 maxcompute是面向分析的大数据计算的服务,它因为serverless架构提供快速的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,经济高效的分析处理海量数据。

    2022-11-07 10:24:48
    赞同 展开评论 打赏
  • 首先,部署HiveServer2 Proxy的前置条件是安装好Java1.7和hadoop2.x(如果你不想安装hadoop也可以跳过这一步),此处不做赘述,请参考这两者的官方文档。笔者在以下内容中将以MacBook PRO的OS X来作为演示系统。其他操作系统的用户在配置上大同小异。

    确保前置条件满足后,请下载HiveServer2 Proxy的测试版。

    将下载到的压缩包解压,得到名为apache-hive-2.1.0-odps-proxy的文件夹。设置好HIVE_HOME环境变量,如笔者的配置 emerson@192.168.31.104 /Users/emerson/apache-hive-2.1.0-odps-proxy % export HIVE_HOME=$(pwd) emerson@192.168.31.104 /Users/emerson/apache-hive-2.1.0-odps-proxy % echo $HIVE_HOME /Users/emerson/apache-hive-2.1.0-odps-proxy

    如果你安装了hadoop请配置环境变量HADOOP_HOME,如果跳过没有安装的,可以使用proxy自带的hadoop依赖,即根目录下的hadoop目录。可以在根目录下执行如下命令:

    emerson@192.168.31.104 /Users/emerson/apache-hive-2.1.0-odps-proxy % export HADOOP_HOME=$(pwd)/hadoop 完成环境变量的配置之后进入根目录下的conf文件夹,修改hive-site.xml中的相关配置项,样例如下所示,其中每一项的说明已在description标签中有所描述:

    hive.execution.engine odps hive执行引擎,此处默认是odps,不需要修改 hive.session.impl.classname org.apache.hive.service.cli.session.HiveSessionOdpsImpl HiveSession的的odps plugin实现,不需要修改 odps.accessid abcdefg 请修改成你的accessid odps.accesskey 123456789= 请修改成你的accesskey odps.project odpsdemo 请修改成你的默认project odps.projects odpsdemo 请修改成你的project列表,如果有多个,请以半角逗号分隔,该配置会在show schemas时生效 odps.endpoint https://service.odps.aliyun.com/api 默认odps endpoint,不需要修改 hive.server2.thrift.port 20000 HiveServer2 Thrift Server以binary方式启动时服务端口,可以酌情修改,以免端口冲突

    对于大部分用户来说,只需要修改odps.accessid、odps.accesskey、odps.project及odps.projects四项即可,其余项可以保留默认配置。如果20000端口已被占用,可以通过hive.server2.thrift.port更换端口配置。

    完成相关配置之后,请回到根目录,执行bin/hiveserver2启动proxy。

    emerson@192.168.31.104 /Users/emerson/apache-hive-2.1.0-odps-proxy % bin/hiveserver2 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/Users/emerson/apache-hive-2.1.0-odps-proxy/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/Cellar/hadoop/2.7.1/libexec/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] 4a5f92fce28a [INFO] ODPS JDBC driver, Version 1.9 4a5f92fce28a [INFO] endpoint=https://service.odps.aliyun.com/api, project=odpsdemo

    可以通过查看日志来确定服务是否启动成功,如下所示:

    emerson@192.168.31.104 /Users/emerson % tail -f /tmp/$USER/hive.log 2016-10-04T17:50:42,048 INFO [main] service.AbstractService: Service:HiveServer2 is started. 2016-10-04T17:50:42,057 INFO [main] server.Server: jetty-7.6.0.v20120127 2016-10-04T17:50:42,108 INFO [Thread-5] thrift.ThriftCLIService: Starting ThriftBinaryCLIService on port 20000 with 5...500 worker threads 2016-10-04T17:50:42,110 INFO [main] webapp.WebInfConfiguration: Extract jar:file:/Users/emerson/apache-hive-2.1.0-odps-proxy/lib/hive-service-2.1.0.jar!/hive-webapps/hiveserver2/ to /private/var/folders/nl/l2z8dnvd51d12nvtwhzzsxjr0000gn/T/jetty-0.0.0.0-10002-hiveserver2--any-/webapp 2016-10-04T17:50:42,276 INFO [main] handler.ContextHandler: started o.e.j.w.WebAppContext{/,file:/private/var/folders/nl/l2z8dnvd51d12nvtwhzzsxjr0000gn/T/jetty-0.0.0.0-10002-hiveserver2--any-/webapp/},jar:file:/Users/emerson/apache-hive-2.1.0-odps-proxy/lib/hive-service-2.1.0.jar!/hive-webapps/hiveserver2 2016-10-04T17:50:42,311 INFO [main] handler.ContextHandler: started o.e.j.s.ServletContextHandler{/static,jar:file:/Users/emerson/apache-hive-2.1.0-odps-proxy/lib/hive-service-2.1.0.jar!/hive-webapps/static} 2016-10-04T17:50:42,311 INFO [main] handler.ContextHandler: started o.e.j.s.ServletContextHandler{/logs,file:/private/tmp/emerson/} 2016-10-04T17:50:42,336 INFO [main] server.AbstractConnector: Started SelectChannelConnector@0.0.0.0:10002 2016-10-04T17:50:42,338 INFO [main] server.HiveServer2: Web UI has started on port 10002 2016-10-04T17:50:42,338 INFO [main] http.HttpServer: Started HttpServer[hiveserver2] on port 10002 如果所有服务正常启动,没有报任何异常,则表明proxy已经部署成功。

    image.png

    2022-10-31 13:31:03
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    必须可以接啊。 最新的MaxCompute版本对参数化视图做了一些改进,可以大大提升参数化视图定义的灵活性。

    首先,参数化视图的参数可以使用ANY关键字,表示任意类型。如

    CREATE VIEW paramed_view (@a ANY) AS SELECT * FROM src WHERE case when @a is null then key1 else key2 end = key3; 这里定义的视图,第一个参数可以接受任意类型。注意ANY类型不能参与如 '+', 'AND' 之类的需要明确类型才能做的运算。ANY类型更多是在TABLE参数中做passthrough列,如

    CREATE VIEW paramed_view (@a TABLE(name STRING, id ANY, age BIGINT)) AS SELECT * FROM @a WHRER name = 'foo' and age < 25;

    -- 调用示例 SELECT * FROM param_view((SELECT name, id, age from students)); 上面的视图接受一个表值参数,但是并不关心这个表的第二列,那么这个列可以直接定义为ANY类型。参数化视图在调用时,每次都会根据输入参数的实际类型重新推算返回值类型。比如上面的视图,当输入的表是 TABLE(c1 STRING, c2 DOUBLE, c3 BIGINT),那么输出的数据集的第二列也会自动变成DOUBLE类型,让视图的调用者可以使用任何可用于DOUBLE类型的操作来操作这一列。

    需要注意的一点是,我们用CREATE VIEW创建了视图后,可以用DESC来获取视图的描述,这个描述中会包含视图的返回类型信息。但是由于视图的返回类型是在调用的时候重新推算的,重新推算出来的类型可能与创建视图时推导出来的不一致。一个例子就是上面的ANY类型。

    在ANY之外,参数化视图中的表值参数还支持了*,表示任意多个列。这个 * 可以带类型,也可以使用ANY类型。如

    CREATE VIEW paramed_view (@a TABLE(key STRING, * ANY), @b TABLE(key STRING, * STRING)) AS SELECT a.* FROM @a JOIN @b ON a.key = b.key;

    -- 调用示例 SELECT name, address FROM param_view((SELECT school, name, age, address FROM student), school) WHERE age < 20; 上面这个视图接受两个表值参数,第一个表值参数第一列是string类型,后面可以是任意多个任意类型的列,而第二个表值参数的第一列是string,后面可以是任意多个STRING类型的列。这其中有几点需要注意:

    变长部分必须要写在表值参数定义的最后面,即在 * 的后面不允许再有其他列。这也间接导致了一个表值参数中最多只有一个变长列列表。 由于变长部分必须在最后,有的时候输入表的列不一定是按照这种顺序排列的,这时候需要对输入表的列做一定重排,可以以subquery作为参数(参考上面的例子),注意subquery外面要加一层括号。 由于表值参数中变长部分没有名字,因此在视图定义过程中没办法获得对这部分数据的引用,也就没有办法对这些数据做运算。这个限制是特意设置的,如果需要对变长部分的数据做运算,需要把要运算的列声明在定长部分,而编译器会对调用时传入的参数进行检查。 虽然不能对变长部分做运算,但是 SELECT * 这种通配符的使用依旧可以将变长部分的列传递出去,如上面的例子在paramed_view中将 @a 的所有列返回,虽然创建视图的时候,a中只有key这一列,但是调用视图的时候,编译器推算出@a中还包含了name, age, address,因此视图返回的数据集中也包含这三列,而视图的调用者也可以对着三列进行操作(如 WHERE age < 20)。 表值参数的列与视图声明时指定的定长列部分不一定完全一致。如果名字不一样,编译器会自动做重命名,如果类型不一样,编译器会做隐式转换(不能隐式转换则会报错)。

    2022-10-27 12:24:23
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    可以接,实现MaxCompute与Hive生态工具的互通有两种方式分别是复用Hive ODBC实现Tableau到MaxCompute的连通和复用Hive JDBC实现Beeline到MaxCompute的连通,借助于HiveServer2 Proxy,可以完成Hive生态的工具与MaxCompute的互通

    2022-10-26 14:59:17
    赞同 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    Hive数据可以迁移到MaxCompute MaxCompute原名ODPS,是阿里云自研的大数据计算平台,MaxCompute 主要服务于批量结构化数据的存储和计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务。 MaxCompute支持SQL查询计算,自定义函数UDF实现复杂逻辑 MaxCompute和Hive一样可以使用SQL、UDF以及MapReduce开发。 飞天(Apsara)是由阿里云自主研发、服务全球的超大规模通用计算操作系统。飞天系统是分布式文件存储和计算系统。对于MaxCompute,可将飞天视为类似于Hadoop的框架,如Hive基于Hadoop,那么可以理解为MaxCompute基于飞天系统。 Hive中权限操作支持ACL授权。MaxCompute支持ACL授权以及Policy权限授权。 Hive是一款经典的hadoop技术栈的数仓软件,可以让用户采用SQL来完成大数据量的计算分析。MaxCompute在很多功能上与Hive相近,所以大部分MaxCompute的用户曾经也是Hive的用户。 MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具,MMA支持自动化数据迁移功能,支持批量建表以及数据自动化批量迁移。另外,MMA还支持作业语法分析,可以检查Hive SQL能否直接运行在MaxCompute里。MMA还支持工作流迁移,对主流数据集成工具Sqoop进行作业的迁移转换,并自动创新DataWorks数据继承作业。 在机器上部署MMA客户端工具时会自动化获取Hive Meta里的数据,既将Hive的Meta数据从Mysql中读出来,还可以将Meta信息自动转换成MaxCompute DDL,然后用DDL在MaxCompute中批量创建表,批量拉起数据同步的作业,向Hive Server并发提交Hive SQL作业。 MMA环境运行要求是jdk1.6版本以上,Python3+。另外,运行MMA的机器,通过Hive Client提交Hive SQL的作业。机器还需要可以访问Hive Server,并连接MaxCompute服务。

    2022-10-25 14:13:18
    赞同 1 展开评论 打赏
  • 码中自由一片天地。。。

    可以呀,MaxCompute提供离线和流式数据的接入,MaxCompute包含1.0数据类型、2.0数据类型和Hive兼容类型,三种数据类型。

    2022-10-25 09:00:44
    赞同 展开评论 打赏
  • 没有尝试过,不过其他系统的视图都可以接,hive应该也可以,不过需要考虑有没有必要,在maxcomputer做个视图提前处理关系或者筛掉字段,一方面是让数据中台失去了本身的意义,一方面则是效率不如在maxcomputer执行来的方便

    2022-10-24 14:51:21
    赞同 展开评论 打赏
  • 一名在读研究生程序猿,欢迎大家指教,我们共同进步!

    可以的 hive得用独享数据集成资源组.MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

    2022-10-24 12:25:57
    赞同 展开评论 打赏
滑动查看更多

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Hive Bucketing in Apache Spark 立即下载
    spark替代HIVE实现ETL作业 立即下载
    2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载