阿里云数仓Dataworks数据导出到文件step by step
背景
假设你在阿里云上Dataworks的空间space下有一个表table_A,想要把它的数据导出到文件以供后续使用,但是数据量又很多,从浏览器复制不太现实。阿里云提供了Java和Python版本的SDK,用来完成这个操作。
为了帮助业务取数,我之前搜了很多文档包括官方文档,但都没有完整讲清楚具体怎么做的,信息很碎片化。经过个人的实践总算摸清楚其中每一步的细节,分享出来。
其实阿里内部是有一套自有的数仓导出&文件分发平台的,希望能尽早开放出来给用户使用。
“空间”所在位置(已打码):

【注意】使用SDK访问数仓表也会按流量计费,因此不要进行一些非必要的操作!
环境准备
安装python,建议用python3
brew install python3
安装pip
easy_install pip
安装pyodps
pip install pyodps
获取AccessKey
按图中的步骤,获取AccessKeyId和AccessKeySecret。注意:AccessKeySecret创建后在阿里云上是无法再次查看的,需要自行保存。


编写取数脚本
基本用法
先写一个简单的脚本,将数仓中所有的行的id列取出来,输出到文件中,请自行替换以下代码中带有"【】"的参数。
注意数据分片是必须的,请自行替换成你的表的分片字段名(默认一般是ds,格式为20210611)
from odps import ODPS
file_handle=open('export.txt',mode='w')
o = ODPS('【AccessKeyId】', '【AccessKeySecret】', '【space】','http://service.odps.aliyun.com/api')
for record in o.read_table('【table_A】', partition='ds=【数据分片】'):
file_handle.write(record.id + '\n')
file_handle.close()
条件查询
此时使用execute_sql+reader来读取即可
from odps import ODPS
file_handle=open('export.txt',mode='w')
o = ODPS('【AccessKeyId】', '【AccessKeySecret】', '【space】','http://service.odps.aliyun.com/api')
with o.execute_sql("select * from 【table_A】 where id = '【***】' and ds='【数据分片】'").open_reader() as reader:
for record in reader:
file_handle.write(record.id + '\n')
file_handle.close()
参考文档
pyods官方文档:https://pyodps.readthedocs.io/zh_CN/latest/
阿里云数仓Dataworks数据导出到文件step by step的更多相关文章
- 揭秘阿里云EB级大数据计算引擎MaxCompute
日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester ...
- 阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读
前言近期, 全球权威IT咨询机构Forrester发布"The Forrester WaveTM: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析型 ...
- ByteHouse云数仓版查询性能优化和MySQL生态完善
ByteHouse云数仓版是字节跳动数据平台团队在复用开源 ClickHouse runtime 的基础上,基于云原生架构重构设计,并新增和优化了大量功能.在字节内部,ByteHouse被广泛用于各类 ...
- 通过SDK和API获取阿里云RDS的监控数据
阿里云的RDS自带的监控系统获取数据不怎么直观,想要通过API获取数据通过zabbix显示,因为网上资料缺乏和其他一些原因,获取API签名很困难,但使用阿里云的SDK可以完美避开获取签名的步骤. 阿里 ...
- 服务器 阿里云服务器Ubuntu挂载数据盘
服务器 阿里云服务器Ubuntu挂载数据盘 转自:http://www.codingyun.com/article/24.html coding云运行在阿里云的Ubuntu 12.04 64位操作系 ...
- Centos7.4(阿里云环境)挂载数据盘
Centos7.4(阿里云环境)挂载数据盘 2018.08.29 10:19 947浏览 查看数据盘 disk -l 磁盘 /dev/vda:42.9 GB, 42949672960 字节,83886 ...
- zabbix通过SDK和API获取阿里云RDS的监控数据
阿里云的RDS自带的监控系统获取数据不怎么直观,想要通过API获取数据通过zabbix显示,因为网上资料缺乏和其他一些原因,获取API签名很困难,但使用阿里云的SDK可以完美避开获取签名的步骤. 阿里 ...
- JavaScript 上万条数据 导出Excel文件(改装版)
最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var ...
- JavaScript 上万条数据 导出Excel文件 页面卡死
最近项目要js实现将数据导出excel文件,网上很多插件实现~~那个开心呀,谁知道后面数据量达到上万条时出问题:浏览器不仅卡死,导出的excel文件一直提示网络失败.... debug调试发现var ...
- 上传文件到Ubuntu阿里云服务器(windows到Linux的文件上传)
上传文件到Ubuntu阿里云服务器(windows到Linux的文件上传) 最近在阿里云上面租了一个轻量级服务器玩玩,学习学习怎么在服务器部署网站.然后嘞,在想要将本地文件上传到服务器的时候,自己研究 ...
随机推荐
- svg组件封装
svg图标优点 文件体积小,能够被大量的压缩 图片可无限放大而不失真(矢量图的基本特征) 在视网膜显示屏上效果极佳 能够实现互动和滤镜效果 svg图标使用 1.安装相应的npm包: yarn add ...
- P1802-DP【橙】
1.又是一道因为写了异常剪枝而调了好久的题,以后再也不写异常剪枝了,异常情况压根不该出现,所以针对出现的异常情况进行补救的异常剪枝是一种很容易出错的行为,做为两手准备也就罢了,但第一次写成的代码必须能 ...
- java进阶(20)--final/fianlly/fianlize区别
1.final关键字.表示最终的.不变的 final修饰的类无法继承 final修饰的方法无法覆盖 final修饰的变量不能重新赋值 举例: final double weight; 2.finall ...
- Jackson 使用 @JsonFormat 注解进行时间格式化
本文为博主原创,未经允许不得转载: 最近帮同事定位了一个现网问题,记录一下: 项目中对所有请求的参数都进行了 Jackson 序列化,在接收请求的实体类字段上使用 @JsonFormat 注解,该注解 ...
- 凡是有但是-varchar和nvarchar的初步学习之一
凡是有但是-varchar和nvarchar的初步学习之一 背景 高应用开发, 在涉及到国内国外的问题时,重要的事情有两个: 时区转换, 字符集转换. 时区转换虽然是很难理清楚, 各种规范不统一的事情 ...
- [转帖]谁动了我的 CPU 频率 —— CPU 性能之迷 Part 2
https://blog.mygraphql.com/zh/notes/low-tec/kernel/cpu-frequency/ 目录: 为何有本文 什么是动态 CPU 频率 什么是 p-state ...
- [转帖]Oracle、SQL Server、MySQL数据类型对比
Oracle.SQL Server.MySQL数据类型对比 - 知乎 (zhihu.com) 1,标准SQL数据类型 BINARY 每个字符占一个字节 任何类型的数据都可存储在这种类型的字段中.不需数 ...
- [转帖]tiup cluster scale-in
https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster-scale-in tiup cluster scale-in 命令用于集群 ...
- 遇到疯狂GC时进行判断然后重启服务的方法-GPT学习使用之三
遇到疯狂GC时进行判断然后重启服务的方法-GPT学习使用之三 背景 最近怀疑产品遇到了第三方组建的bug Groupdocs转换渲染某些文件时出现了严重的FullGC的情况 而且出现的奇怪的功效学GC ...
- [转帖]5、kafka监控工具Kafka-Eagle介绍及使用
https://zhuanlan.zhihu.com/p/628039102 # Apache Kafka系列文章 1.kafka(2.12-3.0.0)介绍.部署及验证.基准测试 2.java调 ...