请问下,
1、大数据计算MaxCompute内部表的数据是存储再OSS上的吗?这些OSS是你们托管的,用户是无法直接访问的?
2、我如果要把表的所有数据copy到另一个区域有什么快速的办法吗?能通过直接copy 文件就可以了吗?我们有几十个表想直接弄过去另一个region
您好!对于您的问题:
MaxCompute内部表的数据实际上是存储在MaxCompute项目中的,而不是直接存储在OSS上。当然,MaxCompute确实支持通过映射的OSS外部表将数据输出到OSS目录。但这种操作并不涉及到用户无法直接访问的托管OSS,而是用户可以通过DataWorks等工具创建与OSS的连接,并指定需要写入的OSS路径和文件名等信息。
要将MaxCompute内部表的所有数据复制到另一个区域,您可以使用INSERT方式将数据写入到另一个OSS外部表中,然后再将这个外部表的数据导入到目标区域的MaxCompute项目中。此外,如果需要将数据以CSV、TSV、开源格式或MaxCompute支持的压缩格式写入OSS,您还可以通过基于MaxCompute内置文本数据解析器或开源数据解析器创建的OSS外部表来执行INSERT操作。
直接使用insert overwrite语法写入(当前操作账号需要有A、B两个region下数据的权限,不需要搭建迁移环境)
用mma进行跨region迁移(任务中配置操作账号需要有A、B两个region下数据的权限,需要搭建一个简单的迁移环境,需要走申请打开底层的copy task开关)
文档可以参考下这里:https://help.aliyun.com/zh/maxcompute/user-guide/maxcompute-data-migration?spm=a2c4g.11186623.0.0.358b27d7UcQVAB ,此回答整理自钉群“MaxCompute开发者社区2群”
MaxCompute内部表的数据是存储在阿里云的OSS上,这些OSS是由阿里云托管的。用户并不直接访问这些OSS,而是通过在MaxCompute项目中创建OSS外部表,建立与存储服务OSS上的目录的映射关系,从而可以访问OSS目录下的数据文件中的非结构化数据,或将MaxCompute项目中的数据写入OSS目录。当需要将数据以CSV、TSV、开源格式或MaxCompute支持的压缩格式写入OSS时,可以通过基于MaxCompute内置文本数据解析器或开源数据解析器创建的OSS外部表,执行INSERT操作将数据写入OSS。为了提升查询效率,推荐先将OSS的开源格式数据导入MaxCompute内部表,然后再读取OSS的数据。
对于如何将MaxCompute表的所有数据copy到另一个区域的问题,可以使用MaxCompute的 clone table
功能。这个功能可以实现同地域MaxCompute跨项目数据迁移,或者同一Region不同云账号间的项目数据迁移。此外,也可以通过 create table [if not exists] <table_name> [lifecycle <days>] as <select_statement>;
语句再创建一个表,并在建表的同时将数据复制到新表中。如果您需要将MaxCompute中的数据导出至其他数据源执行后续数据处理操作时,还可以使用DataWorks的数据集成功能将MaxCompute中的数据以离线方式导出至其他数据源。以上几种方式,您可以根据实际情况选择最适合您的方案进行数据迁移。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。