Snowflake 提供了一套围绕集中式、基于云的数据仓库功能构建的数据管理和分析产品。 企业以不同的方式使用 Snowflake 产品,既可以作为分析型系统,也可以作为事务型系统,以支持各种业务应用。 ArcGIS 提供了与 Snowflake 的各种集成点,从而支持不同的数据访问、分析和可视化工作流。
这些方法可分为四类:
为了在将 ArcGIS 与 Snowflake 集成时获得最佳性能,建议将 ArcGIS 客户端和 Snowflake 环境部署在相同云平台和区域内。 由此可最大限度降低延迟和数据传输成本,并为 ArcGIS 客户端与 Snowflake 服务及端点之间的交互提供最佳性能。
直连模式允许 ArcGIS 客户端直接使用 Snowflake 服务,无需将数据转换或复制到其他位置。 在建立直连之前,请在所有访问数据的 ArcGIS 客户端计算机上安装相应的 Snowflake ODBC 驱动程序。 配置必要的网络和防火墙设置对于实现 ArcGIS 和 Snowflake 之间的正常通信同样至关重要,其中可能包括更新 Snowflake 允许列表以允许来自 ArcGIS 客户端的请求。
可以在 ArcGIS Pro 中创建 Snowflake 查询图层,将其用作制图或分析工作流的图层,然后将其发布到 ArcGIS Enterprise,供 web 客户端和其他应用程序使用。
在任意情况下,查询图层都能提供与 Snowflake 数据的直接、实时连接。 这意味着在 Snowflake 中对源数据进行的任何更改都会立即反映在您的 ArcGIS Pro 地图图层或 ArcGIS Enterprise 查询图层中。 要创建查询图层,首先需要使用受支持的身份验证方案在 ArcGIS Pro 中与 Snowflake 建立数据库连接,然后定义 SQL 查询以选择要可视化的特定数据。 要显示在 ArcGIS Pro 地图中,存储在 Snowflake 中的数据必须包含 GEOGRAPHY 或 GEOMETRY 数据类型的列。 没有空间列的表可以添加为查询图层,用于图表或连接,但无法在地图图层中进行可视化。
有关此领域的更多最佳做法,请参阅数据湖和数据仓库内容。
虽然基于查询图层的 ArcGIS 客户端应用程序不支持直接编辑诸如 Snowflake 等数据仓库中的数据,但可以编写自定义数据源以支持精心设计的读取和写入操作。
可以使用各种工具和方法在 Snowflake 和 ArcGIS 之间传输数据,支持只读工作流以及双向数据流,包括在系统之间进行编辑或提交新数据。 要向 Snowflake 写入数据,可以使用诸如 ArcGIS Data Interoperability 扩展模块等工具,该扩展模块为 Snowflake 提供读/写支持。 支持创建 ETL(提取、转换、加载)工作流以将数据从各种源移至 Snowflake 中。 Data Interoperability 还提供了经过充分测试的读取器功能,用于访问 Snowflake 数据,可以对这些数据进行查询、转换,并将其写入 ArcGIS 要素服务端点或企业级地理数据库表。
可以在 ArcGIS Notebooks 中使用 ArcGIS API for Python,以实现高度自定义和自动化的 ETL 流程。 支持编写脚本以连接至 Snowflake,查询和处理数据,然后将其作为要素服务发布至 ArcGIS Online 或 ArcGIS Enterprise。 此方法为复杂的数据集成任务提供了高度的灵活性。
ArcGIS Data Pipelines 是 ArcGIS 的一项功能,它提供了一个直观的拖放界面,用于从各种源(包括 Snowflake)提取和准备数据。 可以创建数据管道以连接至 Snowflake 表、转换数据,并将其作为要素图层加载到 ArcGIS Online 或 ArcGIS Enterprise 中。 可以安排这些管道自动运行,由此确保 ArcGIS 中的数据保持最新。
ArcGIS GeoAnalytics Engine 扩展了基于 Spark 的环境的分析功能以处理空间数据,其中包括存储在 Snowflake 中的数据。 将任何受支持的 Spark 环境连接到 Snowflake 实例,即可使用 GeoAnalytics Engine 空间 SQL 函数和分析工具对 Snowflake 数据执行大规模地理空间分析。 此集成对于需要分析海量数据集并揭示空间模式和关系的组织尤为有用。
Snowflake 用户也可以访问 Snowflake 托管的数据分析和 Spark 环境,即 Snowpark。 在 Snowpark 中工作时,Snowflake 用户可以连接到 ArcGIS Location Services 以直接在 Snowflake 环境内执行地理空间操作。 支持使用来自 ArcGIS 的诸如地理编码、路径选择和人口统计数据等服务来丰富 Snowflake 数据。 可以在 Snowpark 中创建调用 ArcGIS Location Service API 的用户定义函数 (UDF),以便对存储在 Snowflake 中的数据大规模执行这些操作。
有关这些 Snowpark 集成模式的详细信息,请参阅以下资源: