为了账号安全,请及时绑定邮箱和手机立即绑定

使用Python将数据从REST API导入SQL DB的更好方法?

使用Python将数据从REST API导入SQL DB的更好方法?

GCT1015 2022-08-25 14:05:29
我编写了一些 python 代码,用于从 rest api 中提取数据,并将其加载到 Azure SQL 数据库中。但这个过程需要20,000条生产线近半个小时。有没有更有效的方法可以做到这一点?我想也许可以将数据提取为json文件并将其放在blob storate中,然后使用azure数据工厂将数据加载到SQL中,但不知道如何以这种方式编码。def manualJournalLineItems(tenantid):endpoint = "api.xro/2.0/manualjournals/?page=1"result = (getAPI(endpoint,token,tenantid))page = 1while result['ManualJournals']:    endpoint = "api.xro/2.0/manualjournals/?page="+str(page)    result = (getAPI(endpoint,token,tenantid))    for inv in result['ManualJournals']:        for li in inv['JournalLines']:            cursor.execute("INSERT INTO [server].dbo.[Xero_ManualJournalLines](ManualJournalID,AccountID,Description,LineAmount,TaxAmount,AccountCode,Region) VALUES(?,?,?,?,?,?,?)",inv['ManualJournalID'],li['AccountID'],li.get('Description',''),li.get('LineAmount',0),li.get('TaxAmount',0),li.get('AccountCode',0),tenantid)            conn.commit()    page = int(page)+1
查看完整描述

2 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

如果 Python 不是必需的要求,则可以使用数据工厂。您需要使用以下组件创建管道:

  • “复制数据”活动

  • Source Dataset (REST API)

  • Sink Dataset (Azure SQL)

** 另外,我可以知道您的 REST API 托管在哪里吗?它是否通过应用服务在 Azure 中?如果没有,则还需要设置 [自承载集成运行时]1

可以参考此处将数据从 Blob 存储复制到 Azure SQL 的步骤

您也可以按照下面的屏幕截图进行操作,即将创建 REST API 作为源。

  1. 创建新的管道。

  2. 在“活动”搜索框中输入“复制”。将“复制数据”活动拖到管道中在此输入图像描述

  3. 单击“源”选项卡,然后单击“新建”以创建新的源数据集。在此输入图像描述

  4. “数据源”搜索框中键入“REST”。在此输入图像描述

  5. “REST”数据集窗口中,单击“连接”选项卡。单击“新建”以创建指向 REST API 的链接服务。在此输入图像描述

  6. 在此处填写 REST API 的凭据在此输入图像描述

  7. 继续设置接收器数据集以指向 Azure SQL,并测试管道以确保其正常工作。希望它有帮助!


查看完整回答
反对 回复 2022-08-25
?
MYYA

TA贡献1868条经验 获得超4个赞

找到了答案。将值追加() 到列表中,并使用 executemany() 将列表插入 SQL 中


查看完整回答
反对 回复 2022-08-25
  • 2 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信