Data Lake Analytics: 基于OSS文件自动推断建表

简介: 背景 用户在使用Data Lake Analytics对OSS上的数据建表时,需要预先知道目标文件的格式和schema信息。当目标文件中每条记录对应的列数很多时,需要一个个手动匹配,很不方便。 在新版的Data Lake Analytics中,支持了CREATE EXTERNAL TABLE LIKE 的语法。

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

背景

用户在使用Data Lake Analytics对OSS上的数据建表时,需要预先知道目标文件的格式和schema信息。当目标文件中每条记录对应的列数很多时,需要一个个手动匹配,很不方便。

在新版的Data Lake Analytics中,支持了CREATE EXTERNAL TABLE LIKE 的语法。用户只需要提供表名和目标文件的路径,即可完成建表过程。

本文将重点介绍如何在Data Lake Analytics中使用该语句进行建表。

对OSS文件自动建表

基本语法

CREATE EXTERNAL TABLE table_name LIKE MAPPING ('oss://path/to/target/dir')

例子1

我想针对OSS上的一个包含相同schema的parquet文件的目录建表

  1. 目标表的名字为 my_new_table
  2. 该文件在OSS上的目录结构如下,且file1.parquet, file2.parquet和file3.parquet的schema结构完全相同
oss://mybucket/my_new_table/file1.parquet
oss://mybucket/my_new_table/file2.parquet
oss://mybucket/my_new_table/file3.parquet
  1. 目标表期待的LOCATION为
oss://mybucket/my_new_table/

相应的在Data Lake Analytics中的建表语句如下:

CREATE EXTERNAL TABLE my_new_table LIKE
MAPPING ('oss://mybucket/my_new_table/')

建表成功后,执行SHOW CREATE TABLE语句进行验证。

CREATE EXTERNAL TABLE `my_new_table` (
    `optionalPrimitive` int,
    `requiredPrimitive` int,
    `repeatedPrimitive` ARRAY<int>,
    `optionalMessage` STRUCT<someId:int>,
    `requiredMessage` STRUCT<someId:int>,
    `repeatedMessage` ARRAY<int>
)
STORED AS `PARQUET`
LOCATION 'oss://oss://mybucket/my_new_table/'
TBLPROPERTIES (
    'create.table.like.file' = 'oss://mybucket/my_new_table/'
)

例子2

我想针对OSS上的一个特定Parquet文件建表

  1. 目标表的名字为 my_new_table
  2. 该文件在OSS上的目录结构如下,且file1.parquet, file2.parquet和file3.parquet的schema结构不一样
oss://mybucket/my_new_table/file1.parquet
oss://mybucket/my_new_table/file2.parquet
oss://mybucket/my_new_table/file3.parquet
  1. 目标表期待的LOCATION为
oss://mybucket/my_new_table/file1.parquet

相应的在Data Lake Analytics中的建表语句如下:

CREATE EXTERNAL TABLE my_new_table LIKE
MAPPING ('oss://mybucket/my_new_table/file1.parquet');

建表成功后,执行SHOW CREATE TABLE语句进行验证。

CREATE EXTERNAL TABLE `my_new_table` (
    `optionalPrimitive` int,
    `requiredPrimitive` int,
    `repeatedPrimitive` ARRAY<int>,
    `optionalMessage` STRUCT<someId:int>,
    `requiredMessage` STRUCT<someId:int>,
    `repeatedMessage` ARRAY<int>
)
STORED AS `PARQUET`
LOCATION 'oss://oss://mybucket/my_new_table/file1.parquet'
TBLPROPERTIES (
    'create.table.like.file' = 'oss://mybucket/my_new_table/file1.parquet'
)

小结

  1. 对OSS数据源,CREATE EXTERNAL TABLE LIKE目前已经支持Parquet, ORC, JSON, Avro等格式。
  2. 对于目录结构中含有格式为 partCol=partVal 的分区目录,DLA也可以自动识别分区列。
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
5天前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
1365 1
|
6月前
|
数据处理 对象存储
如何利用 OSS 转换 webp 文件为jpeg
如何利用 OSS 转换 webp 文件为jpeg,OSS 样式使用
1561 1
|
5天前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
7月前
|
开发工具 对象存储 Python
OSS上,如果你想对一个已经存在的文件进行追加写入
OSS上,如果你想对一个已经存在的文件进行追加写入
275 1
|
5天前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
存储 Serverless 对象存储
通过FC运行脚本下载文件到OSS
本文介绍了在阿里云中使用函数计算服务(Function Compute)从URL下载文件并存储到OSS(Object Storage Service)的步骤。首先,需开通函数计算服务并创建RAM角色,授权函数计算访问OSS权限。费用详情参考官方计费概述。操作步骤包括:登录OSS控制台,使用公共模板创建执行,配置参数并运行Python脚本,脚本负责从URL下载文件并上传至指定OSS Bucket。执行成功后,文件将出现在目标OSS Bucket中。
42 0
|
5天前
|
分布式计算 Java 大数据
MaxCompute产品使用合集之大数据计算MaxCompute外部表映射了oss中的csv文件,看到"\N"被解析为"N",是什么原因
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
24 1
|
5天前
|
SQL 消息中间件 存储
对象存储OSS产品常见问题之恢复文件覆盖如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
46 0
|
5天前
|
存储 数据可视化 安全
对象存储OSS产品常见问题之有几十亿个txt文件,单个4kb,使用oss如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
58 11

热门文章

最新文章

http://www.vxiaotou.com