DoltLab本地部署实践

news2025/7/6 18:32:11

目录

        • 引言
        • Dolt是什么?
        • 如何本地部署使用DoltLab
          • 具体安装步骤
        • 安装期间FAQ
        • 写在最后
        • 其他相关资料

引言

  • 自从搞深度学习训练模型以来,一直有个问题困扰着我:训练所用数据集的管理。
  • 为什么说这是一个问题呢? 在读研时,我们依据选的课题来开展研究,用的数据集往往都是公开的标准数据集,像经典的ImageNet、MNIST、Fashion MNIST等等,不存在对数据集有什么特殊管理的问题。而在工作场景下就不同了,工作中用到的数据集往往是根据业务有所侧重的,且会存在自己收集和标注的问题。这就引出了数据集管理问题。
  • 设想如下场景:
    • 假设领导想要做一个身份证检测的任务,需要把图像中身份证抠出来。
    • 这是一个目标检测任务,输入图像,输出是否有身份证,如果有的话,在哪里?
    • 但是这个任务没有现成的数据集供你使用,无奈只能去网上辛辛苦苦搜集一下,然后自己标注其位置,得到一个勉强够用的身份证检测数据集。
    • 随后,经过一系列调参优化,得到了一版较好的模型,成功交付给了领导。然后,你就去忙其他的了。
    • 过了几个月,领导又来找到你,想着把身份证检测改为身份证和火车票的检测。这时,你发现之前标注的身份证数据集的标注不对了,但是又想不起来什么时候改过。
  • 上述身份证数据集损坏或者丢失的场景多种多样,你只能重新将标注一一矫正一下,再做使用。

  • 太长不看版:将数据集备份即可避免数据集丢失问题。
  • 这时,如果使用了dolt,就不会这么麻烦了。接下来就随我看看这个神奇的东西是什么吧!

Dolt是什么?

dolt logo

  • Dolt是一个SQL数据库,可以像操作Git仓库一样来操作数据库。用更直白的话来说,就是将Git和数据库结合了起来,Dolt即支持完整的sql命令,也支持所有的git命令。更通俗来说,Dolt就是将数据集纳入了版本控制系统。
Git
Database
Dolt
DoltHub
Doltlab
HOSTEDDolt
  • 除了Dolt本身这个工具之外,还衍生了上图的三个产品:
    • DoltHub: 类似于Github社区,这是一个大家分享数据集的社区,可以将数据集传到这里,也可以从这里下载数据集。这些数据集都纳入了Git版本控制体系,因此可以协作来动态更新数据集。
    • DoltLab: 这是一个离线版本的DoltHub。因为日常用的数据集有一大部分是自有数据,因为放在DoltHub不太合适。而DoltLab就很好弥补了这个不足。类似于GitLab可以自己搭建一样,DoltLab也可以自行搭建。
    • HOSTEDDolt: 这是一个云端部署的Dolt database,这个用的情况较少,我这里并未做过多探究。

如何本地部署使用DoltLab

  • 因为DoltLab是最能契合使用场景的,可以使用DoltHub所有功能,同时能把握数据安全。接下来,将做详细安装介绍;(详细的官方文档可以点这里)
  • 部署环境介绍:
    • OS: CentOS 7
    • DoltLab: v0.7.0
具体安装步骤
  1. 推荐的最小硬件要求:
    • 4 CPU 和 16G内存
    • 100G 磁盘空间(具体取决于数据集大小)
    • Ubuntu 18.04/20.04 / CentOS 7
    • HOST IP需要开放,且允许TCP链接
    • 以下TCP端口需要开放,且不能被其他应用占用:
      • 22: ssh连接
      • 80:ingress HTTP链接
      • 100:DoltLab remote data file server使用
      • 50051:DoltLab remote API使用
      • 4321:DoltLab file upload service API使用
  2. 安装依赖环境
    1. Ubuntu系统
      wget https://gist.github.com/coffeegoddd/f6cacad2a6da423ca27cd0bebc67fd80 -O ubuntu-bootstrap.sh
      export DOLTLAB_VERSION=v0.7.1
      chmod +x ubuntu-bootstrap.sh
      sudo ./ubuntu-bootstrap.sh with-sudo "$DOLTLAB_VERSION"
      cd doltlab
      sudo newgrp docker # login as root to run docker without sudo
      
    2. CentOS系统
      wget https://gist.github.com/coffeegoddd/655669b436dbf28d78d5610749350811 -O centos-bootstrap.sh
      export DOLTLAB_VERSION=v0.7.1
      chmod +x centos-bootstrap.sh
      sudo ./centos-bootstrap.sh with-sudo "$DOLTLAB_VERSION"
      cd doltlab
      sudo newgrp docker # login as root to run docker without sudo
      
    3. 以上命令,会自动安装上以下依赖:
      • curl
      • unzip
      • docker
      • docker-compose
      • amazon-ecr-credential-helper
    4. 验证是否安装成功(不加sudo可以直接执行):
      docker ps
      CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
      
  3. 下载安装最新版DoltLab
    curl -LO https://doltlab-releases.s3.amazonaws.com/linux/amd64/doltlab-latest.zip
    unzip doltlab-latest.zip -d doltlab
    cd doltlab
    
    • 在doltlab目录下主要有以下几项,关于某一项的解释,参见link:
      envoy.tmpl
      gentokenenckey
      send_doltlab_deployed_event
      smtp_connection_helper
      shell-db.sh
      docker-compose.yaml
      start-doltlab.sh
      
  4. 启动DoltLab
    • 设置如下环境变量:
      export HOST_IP=<Host IP>
      export POSTGRES_PASSWORD=<Password>
      export DOLTHUBAPI_PASSWORD=<Password>
      export POSTGRES_USER="dolthubapi"
      export EMAIL_USERNAME=<SMTP Email Username>
      export EMAIL_PASSWORD=<SMTP Email Password>
      export EMAIL_PORT=<STMP Email Port>
      export EMAIL_HOST=<SMTP Email Host>
      export NO_REPLY_EMAIL=<An Email Address to Receive No Reply Messages>
      
    • 运行
      ./start-doltlab.sh
      
    • 运行成功验证,如果执行下面命令,有相同结果,则说明安装成功
       docker ps
       CONTAINER ID   IMAGE                                                             COMMAND                  CREATED      STATUS      PORTS                                                                                     NAMES
       c1087c9f6004   public.ecr.aws/dolthub/doltlab/dolthub-server:v0.3.1              "docker-entrypoint.s…"   9 days ago   Up 9 days   3000/tcp                                                                                  doltlab_doltlabui_1
       a63aade4a36e   public.ecr.aws/dolthub/doltlab/dolthubapi-graphql-server:v0.3.1   "docker-entrypoint.s…"   9 days ago   Up 9 days   9000/tcp                                                                                  doltlab_doltlabgraphql_1
       5b2cad62d4e5   public.ecr.aws/dolthub/doltlab/dolthubapi-server:v0.3.1           "/app/go/services/do…"   9 days ago   Up 9 days                                                                                             doltlab_doltlabapi_1
       e6268950f987   public.ecr.aws/dolthub/doltlab/doltremoteapi-server:v0.3.1        "/app/go/services/do…"   9 days ago   Up 9 days   0.0.0.0:100->100/tcp, :::100->100/tcp, 0.0.0.0:50051->50051/tcp, :::50051->50051/tcp      doltlab_doltlabremoteapi_1
       52f39c016537   public.ecr.aws/dolthub/doltlab/fileserviceapi-server:v0.3.1       "/app/go/services/fi…"   9 days ago   Up 9 days                                                                                             doltlab_doltlabfileserviceapi_1
       0f952e7c7007   envoyproxy/envoy-alpine:v1.18-latest                              "/docker-entrypoint.…"   9 days ago   Up 9 days   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:4321->4321/tcp, :::4321->4321/tcp, 10000/tcp   doltlab_doltlabenvoy_1
       204e0274798b   public.ecr.aws/dolthub/doltlab/postgres-server:v0.3.1             "docker-entrypoint.s…"   9 days ago   Up 9 days   5432/tcp                                                                                  doltlab_doltlabdb_1
      
  5. 查看界面:浏览器中输入http://${HOST_IP}:80,即可看到和DoltHub一样的界面了。

安装期间FAQ

  1. 遇到某个容器启动之后,又马上关闭的问题
    Q: 首先可以运行docker logs 容器ID查看运行日志定位问题,同时可以参考issue42
  2. 我并没有安装PostgreSQL数据库,怎么也可以运行起来呢?
    Q: 这是因为doltLab自带了一个PostgreSQL数据库,从运行的镜像中可以看到。

写在最后

  • 最终,我这里没有采用该工具。原因在于对数据集的数据库存储,一般适用于文本类的数据集,对于图像类的数据集,需要将图像写入到表中,然后再将表上传到DoltLab中。整个流程过于复杂。
  • 如果平时数据集都是一些txt或者csv倒是可以考虑使用一下。

其他相关资料

  • Best 7 Data Version Control Tools That Improve Your Workflow With Machine Learning Projects

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ELK日志分析系统概述及部署

文章目录一、ELK日志分析系统1、概念2、完整日志系统基本特征3、使用ELK的原因4、ELK 的工作原理二、ELK日志分析系统集群部署的操作步骤环境准备&#xff1a;1、 ELK Elasticsearch 集群部署&#xff08;在Node1、Node2节点上操作&#xff09;1.1、更改主机名、配置域名解析、…

剑指 Offer 53 - I. 在排序数组中查找数字 I

摘要 剑指 Offer 53 - I. 在排序数组中查找数字 I 一、二分查找 1.1 二分查找的分析 由于数组已经排序&#xff0c;因此整个数组是单调递增的&#xff0c;我们可以利用二分法来加速查找的过程。 考虑 target在数组中出现的次数&#xff0c;其实我们要找的就是数组中「第一…

汇编语言ch2_2 汇编语言中的debug

使用debug 可以完成以下功能&#xff1a; 可以查看 和改变 CPU 中&#xff0c;寄存器的内容&#xff1b;可以查看 和改变内存中的内容&#xff1b;可以将内存中的 机器指令 翻译成汇编指令使用汇编指令 在 内存中 存入 机器指令执行机器指令 首先&#xff0c;启动 Debug,在DO…

实现数智内控,数据分析创造价值——辽宁烟草智能风险体检系统

近两年&#xff0c;烟草行业部分单位围绕中心任务&#xff0c;结合实际&#xff0c;守正创新&#xff0c;开展了许多研究探索。比如&#xff0c;在财务大数据价值挖掘、会计共享中心建设、财务风险预警系统建设等方面做了大量卓有成效的工作。在这样的背景下&#xff0c;辽宁烟…

DSPE-MAL 磷脂改性马来酰亚胺简介CAS1360858-99-6

DSPE-MAL二硬脂酰磷脂酰乙醇胺改性马来酰亚胺 中文名称&#xff1a;二硬脂酰磷脂酰乙醇胺改性马来酰亚胺 英文名称&#xff1a;DSPE-MAL CAS&#xff1a;1235864-97-7 分子式&#xff1a;C48H86N2NaO11P 分子量&#xff1a;921.16700 外观&#xff1a;白色粉末 DSPE-MAL二…

2022icpc 济南站 持续补题

链接&#xff1a;Dashboard - 2022 International Collegiate Programming Contest, Jinan Site - Codeforces 签到题&#xff1a;k K. Stack Sort You are given a permutation with nn numbers, a1,a2,…,an(1≤ai≤n,ai≠aj when i≠j). You want to sort these numbers …

WY易盾cb、fp逆向分析

内容仅供参考学习 欢迎朋友们V一起交流&#xff1a; zcxl7_7 目标 网址&#xff1a;案例地址 这个好像还没改版&#xff0c;我看官网体验那边已经进行了混淆 分析 这个进行的请求很乱&#xff0c;我就不说怎么找的了&#xff0c;到时候越听越乱。一共有2个请求很重要 …

笔试题之编写SQL按要求查询用户阅读行为数据

紧张源于恐惧&#xff0c;恐惧源于未知。 文章目录前言一、SQL题目二、当时作答结果三、复盘&#xff08;一&#xff09;建表并自定义插入数据&#xff08;二&#xff09;正确解答&#xff08;三&#xff09;答错原因分析总结前言 分享本人一次失败的笔试经历&#xff0c;供各…

plink中的BGEN格式的数据如何用

这里&#xff0c;介绍一下BGEN格式的数据&#xff0c;他的文件格式是这样的&#xff1a;a.bgen&#xff0c;这是一个新的数据格式&#xff0c;目前应用不如plink的二进制文件&#xff1a;.bim,.bed,.fam。这里介绍一下如何相互转换。 1. bgen格式介绍 现代遗传关联研究通常使…

[附源码]计算机毕业设计JAVA中小企业人事管理系统

[附源码]计算机毕业设计JAVA中小企业人事管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

HMS Core 6.8.0版本发布公告

分析服务 ◆ 游戏行业新增“区服分析”埋点模板及分析报告&#xff0c;支持开发者分服务器查看用户付费、留存等指标&#xff0c;可进一步评估不同服务器的玩家质量&#xff1b; ◆ 新增营销活动报告&#xff0c;可查看广告任务带来的曝光、点击相关信息&#xff0c;让营销推…

阿里P7晒工资条,看完真的扎心了……

前几天&#xff0c;有位老粉私信我&#xff0c;说看到某95后学弟晒出阿里P7的工资单&#xff0c;他是真酸了…想狠补下技术&#xff0c;努力冲一把大厂。 为了帮到他&#xff0c;也为了大家能在最短的时间内做面试复习&#xff0c;我把软件测试面试系列都汇总在这一篇文章了。…

关于信息系统监理师考试怎么备考?

信息系统监理师是属于软考的中级科目&#xff0c;是水平考试&#xff0c;取得证书后就具备了任职中级职称的资格&#xff0c;并可以注册为信息系统监理师&#xff0c;进行信息系统监理工程师的执业工作。 注册监理工程师&#xff0c;是指经考试取得中华人民共和国监理工程师资…

041-推箱子游戏1

上一讲:040-JAVA集合及GUI综合应用(实现简单的订单管理系统)_CSDN专家-赖老师(软件之家)的博客-CSDN博客 下一讲:推箱子游戏源代码 摘要: 1、使用JAVA基础知识 2、GUI界面编程实现推箱子界面,常用控件的综合应用; 3、使用JAVA绘图技术实现推箱子过程的绘图功能;…

追觅身陷「多事之秋」!一场无法投机的「卡位战」

清洁电器市场正释放着新的商业活力。 GfK数据显示&#xff0c;今年上半年在整体家电市场低迷的同时&#xff0c;清洁机器人市场零售额保持了同比15%的增速&#xff0c;仍然是家电行业的主要增长点。其中&#xff0c;线上市场扫地机器人销售仍然居首位&#xff0c;但洗地机反超…

项目笔记:Arduino读取SD卡

1 硬件连接&#xff08;使用Arduino Uno&#xff09;&#xff1a; CS -> 10 SCK -> 13 MOSI -> 11 MISO -> 12 VCC ->5V GND -> GND 2 让Arduino检测到SD卡 官方测试程序&#xff1a;检测SD卡连接并输出卡型号 /*SD card testThis example shows how use…

Linux 磁盘结构,文件系统与inode

&#x1f9f8;&#x1f9f8;&#x1f9f8;各位大佬大家好&#xff0c;我是猪皮兄弟&#x1f9f8;&#x1f9f8;&#x1f9f8; 文章目录一、关于磁盘①磁盘②CHS寻址⑤磁盘结构的抽象二、文件系统①inode与文件的关系②创建文件&#xff0c;系统做的事③删除文件&#xff0c;系…

如何升级展锐RM500U模组的5GCPE固件

本文镜像&#xff1a;https://blog.csdn.net/weixin_45326556/article/details/128236605 如何升级展锐RM500U模组的5GCPE固件1. 准备工作2. 安装5GCPE串口驱动3. 升级固件3.1 选择固件3.2 选择串口号3.3 下载固件3.4 下载固件意外情况4. 重新启动5.参考文献1. 准备工作 从网盘…

智慧旅游景区Web3D可视化GIS综合运营平台

建设背景 2014年8月&#xff0c;《国务院关于促进旅游业改革发展的若干意见》。 2015年年初&#xff0c;原国家旅游局发布《关于促进智慧旅游发展的指导意见》。 2021年12月&#xff0c;国务院印发《“十四五”旅游业发展规划》。 在国家和有关部门的引导和支持下&#xff…

卡塔尔世界杯-诸神黄昏

世界杯 世界杯概述:国际足联世界杯&#xff08;FIFA World Cup&#xff09;简称“世界杯”&#xff0c;是世界上最高荣誉、最高规格、最高竞技水平、最高知名度的足球比赛&#xff0c;与奥运会并称为全球体育两大最顶级赛事&#xff0c;影响力和转播覆盖率超过奥运会的全球最大…