如何在Snowflake中获取汇率(历史及每日更新)?Snowflake Marketplace有无免费日更提供商?
在Snowflake中获取汇率数据(历史+每日更新)及免费选项指南
一、获取汇率数据的常见方法
1. 直接通过Snowflake Marketplace集成第三方数据源
这是最省心的方式,Marketplace上的数据源大多已经预配置好历史数据和每日更新机制,订阅后就能直接查询使用,不用自己搭建数据管道。
2. 自建数据管道拉取公开汇率API
如果想自定义数据逻辑,可以自己写脚本拉取公开的免费汇率API(比如欧洲央行ECB、IMF的公开数据),再同步到Snowflake。
举个Python脚本示例,拉取ECB历史汇率并写入Snowflake:
import requests import pandas as pd from snowflake.connector import connect # 拉取ECB的历史汇率XML数据 response = requests.get('https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist.xml') df = pd.read_xml(response.content) # 连接Snowflake并追加数据到表中 conn = connect( user='你的用户名', password='你的密码', account='你的账号标识', warehouse='你的仓库', database='目标数据库', schema='目标 schema' ) df.to_sql('EXCHANGE_RATES_HIST', conn, if_exists='append', index=False) conn.close()
之后可以通过Snowflake的Task功能设置每日自动执行这个脚本,实现每日更新。
3. 创建外部表直接访问公开存储的汇率数据
部分公开数据源会把数据托管在S3、GCS等公开存储桶中,比如ECB的汇率CSV文件就放在公开S3桶里。你可以创建Snowflake外部表直接查询这些数据,无需加载到内部表:
CREATE OR REPLACE EXTERNAL TABLE ECB_EXCHANGE_RATES_EXT WITH LOCATION = 's3://ecb-eurofxref/eurofxref-hist/' FILE_FORMAT = (TYPE = CSV FIELD_OPTIONALLY_ENCLOSED_BY '"' SKIP_HEADER = 1) AUTO_REFRESH = TRUE; -- 开启自动刷新,自动获取每日更新的数据
二、Snowflake Marketplace中的免费每日更新汇率选项
目前Marketplace上有几个免费的汇率数据源,支持每日更新和历史数据查询:
- Free Foreign Exchange Rates (ECB):基于欧洲央行官方数据,覆盖1999年至今的历史数据,每日自动同步,支持绝大多数主流货币对,完全免费,订阅后直接可用。
- Open Exchange Rates Free Tier:提供基础每日汇率数据,历史数据覆盖最近数年,免费版有一定的访问限制,但中小规模使用足够,每日更新。
- CurrencyLayer Free:免费版支持168种货币的每日汇率,历史数据可回溯至2000年,自动每日同步,适合非商业场景使用。
注意:免费版通常有数据范围或使用限制(比如仅支持主要货币对、历史数据时长有限),订阅前建议仔细查看服务商的具体条款。
内容的提问来源于stack exchange,提问作者Felipe Hoffa
相关产品推荐
相关产品推荐

