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

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

背景

用户在使用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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
3月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之上传素材文件不在同一地域的OSS,怎么上传多张图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
43 1
|
3月前
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在使用MaxCompute进行数据集成同步到OSS时,出现表名和OSS文件名不一致且多了后缀,该如何处理
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
运维 Serverless 对象存储
函数计算产品使用问题之如何配合OSS实现接口收到的图片或文件直接存入OSS
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之如果oss文件过大,如何在不调整oss源文件大小的情况下优化查询sql
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之使用OSS读取CSV文件到ODPS时遇到报错,一般是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之是否可以对OSS文件进行谓词下推
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之在调用接口传入的图片URL参数,文件在本地或者非上海地域OSS链接,该怎么办
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
5月前
|
Java 对象存储
阿里云OSS上传下载文件java
阿里云OSS上传下载文件java
330 0