• 阿里云数仓Dataworks数据导出到文件step by step


    背景

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

    “空间”所在位置(已打码):

    【注意】使用SDK访问数仓表也会按流量计费,因此不要进行一些非必要的操作!

    环境准备

    1. 安装python,建议用python3

      brew install python3
      
    2. 安装pip

      easy_install pip
      
    3. 安装pyodps

      pip install pyodps
      

    获取AccessKey

    按图中的步骤,获取AccessKeyIdAccessKeySecret注意: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/


    作者:五岳
    出处:http://www.cnblogs.com/wuyuegb2312
    对于标题未标注为“转载”的文章均为原创,其版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     
  • 相关阅读:
    ie下table无法设置宽度的坑,解决方案:在td里面添加div把td宽度撑开即可。
    js simple drag.
    javascript事件捕获机制,dom tree
    WPF,布局,Menu,MenuItem,DockPanel,Grid,DockPanel.Dock='',ToolBar,Content,Image,Uri
    .net IntPtr ==interoperable pointer
    Why do I keep getting mixed tabs and spaces in a Visual Studio C# code window?[vs power tools issue transfered]
    vs nuget package control.
    Introduction to the WinPcap Networking Libraries
    读懂这一篇,集群节点不下线
    函数组合的 N 种模式
  • 原文地址:https://www.cnblogs.com/wuyuegb2312/p/14884657.html
Copyright © 2020-2023  润新知