这是一系列有关使用雪花的数据库更改管理的文章
- 用雪花(这一个)的数据库更改管理
- Database Change Management with Snowflake and GitHub
本教程将指导您逐步设置ByteBase中Snowflake的数据库更改管理。使用ByteBase,团队可以进行正式的审核和推出过程,以进行雪花模式更改和数据更改。
在这里,我们必须提及内容丰富的博客文章Embracing Agile Software Delivery and DevOps with Snowflake,该文章提供了宝贵的见解,并激发了我们在产品中实施类似流程的启发。
您将拥有GUI和完整的移民历史。您可以使用字节键免费计划来完成本教程。如果需要,还有一个关于这些高级用户的架构漂移检测的奖励部分。
先决条件
在启动本教程之前,请确保:
- 您有一个雪花帐户,带有
ACCOUNTADMIN
的角色。 - 您在本地安装了Docker。
步骤1-在Docker中启动字节键
- 确保您的Docker守护程序正在运行,并通过在终端中键入以下命令来启动字节键Docker容器。
docker run --init \
--name bytebase \
--restart always \
--publish 5678:8080 \
--health-cmd "curl --fail http://localhost:5678/healthz || exit 1" \
--health-interval 5m \
--health-timeout 60s \
--volume ~/.bytebase/data:/var/opt/bytebase \
bytebase/bytebase:1.9.1 \
--data /var/opt/bytebase \
--port 8080
步骤2-在字节基础上添加雪花帐户
在字节键中,实例可能是您的本地MySQL实例,AWS RDS实例等,在本教程中,雪花帐户。
环境:选择Test
,如果您选择Prod
,则需要批准所有将来的变更请求。在本教程中,让我们尝试保持简单。 (但是,这是所有可配置的。)
帐户名称:转到您的雪花帐户,您可以在URL或定位器字段中找到它(但较低的情况)。
关于连接信息,请确保您的帐户在雪花中设置了DEFAULT_ROLE=ACCOUNTADMIN
和DEFAULT_WAREHOUSE
,如下所示。
步骤3-用雪花实例创建一个项目
bytebase,项目是逻辑相关数据库的容器其他开发工具,例如Jira,Gitlab。因此,在处理数据库之前,必须创建一个项目。
步骤4-通过BIDTEBASE在雪花中创建数据库
在字节键中,a 数据库是CREATE DATABASE xxx
创建的数据库。数据库始终属于一个项目。 问题代表开发人员和DBA之间的特定协作活动,例如创建数据库,更改模式。它类似于其他问题管理工具中的问题概念。
-
用名称-
DB_DEMO_BB
(BB是字节基础的简短),环境-Test
和实例-Snowflake instance
。单击创建。
-
字节键将创建一个问题 - 自动创建数据库。因为这是针对
Test
环境的,因此问题将在不等待您默认情况下的批准而运行。单击解决,问题就完成了。创建数据库。
-
通过单击主页在左侧栏上返回主页。如果您第一次使用字节基础,它将显示庆祝活动。在主页上,您可以看到项目,数据库以及您刚解决的问题。
步骤5-通过字节键在雪花上创建桌子
在步骤4中,您实际上在UI工作流中创建了一个问题,然后执行它。让我们更加明确。
-
输入标题,SQL和受让人,然后单击创建。
CREATE SCHEMA DEMO_UI;
CREATE TABLE HELLO_WORLD
(
FIRST_NAME VARCHAR,
LAST_NAME VARCHAR
);
奖励部分 - 模式漂移检测
要遵循本节,您需要拥有团队计划或企业计划(您可以在没有信用卡的产品中直接在产品中开始14天的试用)。
现在,您可以看到DB_DEMO_BB的完整迁移历史记录。但是,什么是建立新的基线?什么时候应该使用?
通过采用字节键,我们希望团队仅将字节基础用于所有模式更改。同时,如果有人在Bytebase之外进行了雪花架构的变化,那么显然Bytebase会不会知道。而且,由于ByteBase已记录了自己的模式副本,因此ByteBase比较具有带外模式的实时模式变化时,它将注意到差异和表面架构漂移异常。如果要进行更改,则应使用基线再次调和模式状态。
在本节中,您将被引导完成此过程。
摘要和下一个
现在,您已经将雪花与字节键连接在一起,并尝试了UI工作流程进行模式更改。 BYTEBASE将为您记录完整的迁移历史记录。使用团队或企业计划,您甚至可以进行模式漂移检测。
在下一篇文章中,您将尝试使用Gitops Workflow,该工作流将您的雪花架构存储在GitHub中,并在将更改提交到存储库后触发更改,以将您的雪花更改工作流程提升到新的数据库DEVOPS -Database as Code。