开发者社区> 问答> 正文

maxcompute 数据导出到本地Mysql

larrysz 2016-08-22 10:46:00 2371

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

分享到
取消 提交回答
全部回答(2)
  • 继盛
    2019-07-17 20:04:45

    用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])
    0 0
  • 艺卓
    2019-07-17 20:04:45

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

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

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

    0 0
添加回答
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程