开发者社区> 问答> 正文

maxcompute 数据导出到本地Mysql

PythonSDK访问maxcompute查询的数据大约1G(下图中的table t)导出到本地Mysql,有哪些简单快速的方法,谢谢~~~~
screenshot

展开
收起
larrysz 2016-08-22 10:46:00 7191 0
2 条回答
写回答
取消 提交回答
  • 程序猿一枚,把梦想揣进口袋的挨踢工作者。主要工作是分布式数据分析(DataFrame并行化框架),以及大规模分布式多维数组计算框架等。

    用PyODPS可以写成这样,mysql那边使用sqlalchemy

    import itertools
    from sqlalchemy import create_engine, MetaData, Table
    from odps.df import DataFrame
    
    DB_CONNECT_STR = 'mysql+mysqldb://root:@localhost/mydb?charset=utf8'
    engine = create_engine(DB_CONNECT_STR, echo=True)
    conn = engine.connect()
    metadata = MetaData(engine)
    table = Table('mysql_table', metadata, autoload=True)
    
    df = DataFrame(odps.get_table('my_demo_table', project='my_project'))
    selected = df.filter(df.pdate == '')['imei', 'time_in', 'ntotalvote', 'ntotalcurr']
    
    records = []
    for i, record in zip(itertools.count(1), selected.execute()):
        if i % 100:
            conn.execute(conn.insert(), [dict(r) for r in records])
            records = []
        records.append(record)
    if records:
        conn.execute(conn.insert(), [dict(r) for r in records])
    2019-07-17 20:04:45
    赞同 展开评论 打赏
  • MaxCompute 生态

    如果数据本身用文本能表达的话,走 odpscmd tunnel download 下载成本地文件,再从 mysql 那边 load data 进去最快。

    自己拿 python 写几行导入到 mysql 也不复杂。

    是在不想自己写,odps 也有 jdbc 驱动,找个能两个 jdbc 源之间同步数据的应该也可以。

    2019-07-17 20:04:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载
大数据&AI实战派 第2期 立即下载

相关镜像