architecture - 设置初始雪花环境的最佳实践 - 多个 URL
问题描述
我想知道其他人如何设置他们的初始雪花环境,考虑到 DevOps 和代码部署以及他们这样做的经验。人们是使用多个帐户/URL 来简化 DevOps 和部署,还是使用一个帐户构建单独的 DEV、TEST 和 PROD 数据库?例如:
开发= http://mydevaccount.east-us-2.azure.snowflakecomputing.com
- SourceSystem.Schema.Tables
测试= http://mytestaccount.east-us-2.azure.snowflakecomputing.com
- SourceSystem.Schema.Tables
产品= http://myprodaccount.east-us-2.azure.snowflakecomputing.com
- SourceSystem.Schema.Tables
你为什么或为什么不这样做?
过去,我在一个帐户下设置了环境,例如:
单一环境= http://mysnowflakeaccount.east-us-2.azure.snowflakecomputing.com
开发_SourceSystem.Schema.Tables
测试_SourceSystem.Schema.Tables
产品_SourceSystem.Schema.Tables
解决方案
有趣的是,您将单独的帐户称为使 DevOps 在您的问题中更容易。根据我的经验,将所有内容都放在一个帐户中会更容易,这就是原因。如果您在 RBAC 模型中使用良好的结构,那么在隔离这些环境方面没有区别(假设您不希望为不同的环境设置单独的 IP 白名单,在这种情况下,这种对话是没有意义的)。同时,如果您确保您的 DevOps、ETL 等脚本都仅引用模式(没有数据库引用),那么迁移 DDL、DML 等就像在单独的帐户中一样容易。同时,Snowflake 的最佳功能之一是适用于您的测试生命周期的零拷贝克隆。这仅在单个帐户中可用。如果您使用单独的帐户,您将需要将数据从一个环境复制到下一个环境(将存储成本翻倍或增加三倍,以及大量的时间消耗和信用消耗)。零拷贝克隆允许您将数据近乎即时地快照到不同的环境。
根据我与许多 Snowflake 客户的经验,单个帐户是最常见的,但也有使用多个帐户的客户。这真的取决于对你来说什么是重要的。
推荐阅读
- java - 通过 http get 调用访问 WEB-INF 时 Jboss eap 返回 302
- java - UnsatisfiedDependencyException - 创建具有名称的 bean 时出错
- syntax - 如何使用 SPSS 语法来屏蔽变量中除 2 个指定值之外的所有值?
- python - 如何将此代码从 muPAD 转换为 Python?
- amazon-web-services - 无效操作:操作 s3:ListObjects 不存在
- python - 为什么多处理不使用我所有的内核
- scikit-learn - RandomizedSearchCV 抽样分布
- firebase - 带有一些依赖关系的firebase版本解决错误
- android - 无法从嵌套在微调器中的另一个 Arraystring 的位置中设置 ArrayString 的文本
- javascript - 从 Formik & Material UI 表单中获取字段值