首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是好的数据库工作流?

什么是好的数据库工作流?
EN

Stack Overflow用户
提问于 2019-11-12 16:00:53
回答 3查看 1.4K关注 0票数 9

我使用进行数据处理,使用笔记本和管道。

我对我目前的工作流程不满意:

  • 在生产中使用的笔记本电脑不能在不中断生产的情况下进行修改。当我想开发一个更新,我复制笔记本,更改源代码,直到我满意,然后我用我的新笔记本取代生产笔记本。
  • 我的浏览器不是IDE!我不能轻易地进行函数定义。我有很多笔记本电脑,如果我想修改甚至只是看到一个函数的文档,我需要切换到定义这个函数的笔记本。
  • 是否有办法进行有效和系统的测试?
  • Git集成非常简单,但这不是我关心的主要问题。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-13 12:16:33

问得好。绝对不要修改您的生产代码到位。

推荐的一种模式是在您的工作区中保留单独的文件夹以供开发暂存-prod使用。在最终提升到生产之前,先执行开发工作,然后在阶段中运行测试。

您可以使用Databricks CLI将笔记本从一个文件夹拉到另一个文件夹,而不破坏现有代码。更进一步,您可以将此模式与git结合起来,以便与版本控制同步。在任何一种情况下,CLI都允许您对工作区进行编程访问,这将使您更容易更新生产作业的代码。

关于IDE的第二点,Databricks提供了数据库连接,让我们在集群上运行命令时使用IDE。基于您的痛点,我认为这是一个很好的解决方案,因为它将使您对您定义的函数有更多的可见度,等等。您也可以以这种方式编写和运行单元测试。

一旦您的脚本准备就绪,您就可以将它们作为笔记本导入工作区,并作为作业运行。还要知道,您可以使用REST作为作业运行.py脚本。

票数 3
EN

Stack Overflow用户

发布于 2020-04-23 21:36:55

我个人更喜欢打包我的代码,并将*.whl包复制到DBFS,在那里我可以安装测试包并导入它。

编辑:更明确。

在生产中使用的笔记本电脑不能在不中断生产的情况下进行修改。当我想开发一个更新,我复制笔记本,更改源代码,直到我满意,然后我用我的新笔记本取代生产笔记本。

这可以通过有单独的环境DEV/TST/PRD来解决。或者具有可以隔离修改的版本包。我稍后会澄清。

我的浏览器不是IDE!我不能轻易地进行函数定义。我有很多笔记本电脑,如果我想修改甚至只是看到一个函数的文档,我需要切换到定义这个函数的笔记本。是否有办法进行有效和系统的测试?

是的,使用我提到的与databricks-connect相结合的版本化包方法,您完全能够使用您的IDE,实现测试,并进行适当的git集成。

Git集成非常简单,但这不是我关心的主要问题。

在更大的团队中工作时,内置的git集成实际上是非常糟糕的。你不可能同时在同一个笔记本上进行开发,因为你的同事们分享的变化是扁平的和线性的积累。此外,您还必须链接和取消容易发生人为错误的存储库,导致您的笔记本在错误的文件夹中同步,因为无法导入笔记本而导致运行中断。我建议你也使用我的包装解决方案。

打包解决方案的工作方式如下所示:参考文献

  1. 列表项目
  2. 在你的桌面上,安装火星雨。
  3. 下载一些匿名数据以使用
  4. 用少量数据开发代码,编写单元测试。
  5. 当准备好对大数据进行测试时,卸载pyspark,安装databricks-connect
  6. 当性能和集成足够时,将代码推送到远程回购。
  7. 创建运行自动测试的构建管道,并构建版本化包。
  8. 创建一个发布管道,将版本包复制到DBFS。
  9. 在"runner记事本“中,接受"process_date”和"data文件夹/filepath“作为参数,并从版本化的包中导入模块
  10. 将参数传递给模块以运行测试代码。
票数 2
EN

Stack Overflow用户

发布于 2020-04-25 11:29:42

我们现在的做法-

-Integrate的开发笔记本与Azure DevOps。

用于笔记本、作业、包和集群部署的-Create自定义构建和部署任务。这在DatabBricks RestAPI中很容易实现。

https://docs.databricks.com/dev-tools/api/latest/index.html

创建用于测试、分期和生产部署的发布管道。测试和测试的-Deploy。-Deploy在分期和测试上。生产上的-Deploy

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58822369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档