lakefs 類似git 的文件對象存儲


lakefs 是基於golang編寫的兼容git 的對象存儲

特性

包含了git 的能力,同時方便集成數據ci/cd,同時可以方便的和現有的數據技術棧集成

使用

基於docker-compose運行

  • docker-compose 文件
version: '3'
services:
  lakefs:
    image: "treeverse/lakefs:${VERSION:-latest}"
    ports:
      - "8000:8000"
    depends_on:
      - "postgres"
    environment:
      - LAKEFS_AUTH_ENCRYPT_SECRET_KEY=${LAKEFS_AUTH_ENCRYPT_SECRET_KEY:-some random secret string}
      - LAKEFS_DATABASE_CONNECTION_STRING=${LAKEFS_DATABASE_CONNECTION_STRING:-postgres://lakefs:lakefs@postgres/postgres?sslmode=disable}
      - LAKEFS_BLOCKSTORE_TYPE=${LAKEFS_BLOCKSTORE_TYPE:-local}
      - LAKEFS_BLOCKSTORE_LOCAL_PATH=${LAKEFS_BLOCKSTORE_LOCAL_PATH:-/home/lakefs}
      - LAKEFS_GATEWAYS_S3_DOMAIN_NAME=${LAKEFS_GATEWAYS_S3_DOMAIN_NAME:-s3.local.lakefs.io:8000}
      - LAKEFS_BLOCKSTORE_S3_CREDENTIALS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-}
      - LAKEFS_BLOCKSTORE_S3_CREDENTIALS_ACCESS_SECRET_KEY=${AWS_SECRET_ACCESS_KEY:-}
      - LAKEFS_LOGGING_LEVEL=${LAKEFS_LOGGING_LEVEL:-INFO}
      - LAKEFS_STATS_ENABLED
      - LAKEFS_BLOCKSTORE_S3_ENDPOINT
      - LAKEFS_BLOCKSTORE_S3_FORCE_PATH_STYLE
      - LAKEFS_COMMITTED_LOCAL_CACHE_DIR=${LAKEFS_COMMITTED_LOCAL_CACHE_DIR:-/home/lakefs/.local_tier}
    entrypoint: ["/app/wait-for", "postgres:5432", "--", "/app/lakefs", "run"]
  postgres:
    image: "postgres:${PG_VERSION:-12}"
    command: "-c log_min_messages=FATAL"
    environment:
      POSTGRES_USER: lakefs
      POSTGRES_PASSWORD: lakefs
 
 
<wiz_tmp_tag class="wiz-block-scroll">
 
  • 啟動
docker-compose up -d
  • 效果

 

 


首次需要使用lakefs 的cli 進行初始化(需要進入容器)

 
lakefs init --user-name dalongdemo

參考效果

 

 

  • 數據使用
    lakefs 對於數據的上傳和普通s3的操作是一樣的,只是為了方便進行類似git 的管理提供了一個cli 程序,同時lakefs 也可以使用s3做為底層存儲
    參考配置
 
blockstore:
  type: s3
  s3:
    force_path_style: true
    endpoint: http://<minio_endpoint>:9000
    credentials:
      access_key_id: <minio_access_key>
      secret_access_key: <minio_secret_key>
 
 

 

 

參考架構

 

 

說明

基於git 模式的數據管理工具還是很多的,dolthub,nessie 都是很不錯的

參考資料

https://github.com/treeverse/lakeFS
https://lakefs.io/
https://docs.lakefs.io/reference/configuration.html#example-minio
https://docs.lakefs.io/reference/configuration.html#using-environment-variables
https://projectnessie.org/
https://github.com/projectnessie/nessie
https://www.dremio.com/introducing-project-nessie


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM