从阿里云数仓表中导出数据的详细步骤 背景 假设你在阿里云上Dataworks的空间space下有一个表table_A,想要把它的数据导出到文件以供后续使用,但是数据量又很多,从浏览器复制不太现实。阿里云提供了J
假设你在阿里云上Dataworks的空间space
下有一个表table_A
,想要把它的数据导出到文件以供后续使用,但是数据量又很多,从浏览器复制不太现实。阿里云提供了Java和python版本的SDK,用来完成这个操作。
为了帮助业务取数,我之前搜了很多文档包括官方文档,但都没有完整讲清楚具体怎么做的,信息很碎片化。经过个人的实践总算摸清楚其中每一步的细节,分享出来。
其实阿里内部是有一套自有的数仓导出&文件分发平台的,希望能尽早开放出来给用户使用。
“空间”所在位置(已打码):
【注意】使用SDK访问数仓表也会按流量计费,因此不要进行一些非必要的操作!
按图中的步骤,获取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 + "
")
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 + "
")
file_handle.close()
pyods官方文档:https://pyodps.readthedocs.io/zh_CN/latest/
--结束END--
本文标题: 阿里云数仓Dataworks数据导出到文件step by step
本文链接: https://lsjlt.com/news/8508.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0