Airbyte中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户
    • 群组
    • 达之云

    入湖入仓,数据传输管道。开源软件Airbyte中文社区

    微信号:AirbyteCN

    QQ群:114917858

    airbyte日志输出说明

    操作指南
    1
    1
    530
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      dazdata 最后由 dazdata 编辑

      总览

      本教程将介绍如何浏览 Airbyte Workspace 文件夹。

      如果您需要浏览在 docker 卷上Airbyte server 和 workers 存储的额外数据,可以参考本教程,它们可能无法通过 web 界面访问。

      浏览日志

      当您在 Airbyte 中运行 Sync Job 时,您可以通过 web 查看日志,如下所示。

      识别 Workspace ID

      在下面的屏幕截图中,您可以注意到突出显示的蓝色框显示用于此Sync Job的选定"尝试"的 ID 号。

      在这种情况下,Job在/tmp/workspace/4/2/文件夹中运行,您可以看到当前选择了第三次尝试的选项卡(第一次尝试是/tmp/workspace/4/0/)。

      右侧红色圆圈中突出显示的按钮将允许您下载 log 文件。
      然而,实际上在同一个工作区文件夹中记录了很多文件。因此,我们可能希望更深入地查看这些文件夹,并更好地了解 Airbyte 正在运行的内容。

      理解 Docker run 命令

      我们把日志再向下滚动一点,我们可以看到一些以 docker run 开头的命令,像下面这样:

      docker run --rm -i -v airbyte_workspace:/data -v /tmp/airbyte_local:/local -w /data/2/2 --network host ...
      

      从这里,我们可以看到 Airbyte 调用-v选项将名为 airbyte_workspace 的 docker 卷挂载到容器的 /data 目录。

      参考 Docker 卷的文档, 我们可以检查和操作这些卷中的持久化数据。

      通过UNIX Shell 浏览 docker 卷的内容

      例如,我们可以创建一个容器,然后将卷挂载到我们新建的容器,进入容器我们就可以看见卷的内容, 这里我们是用 busybox 镜像。

      docker run -it --rm --volume airbyte_workspace:/data busybox
      

      上一步我们将进入到是 sh 的shell环境中,它由我们刚创建的容器提供。通过它我们就可以浏览卷里面的数据,上一步我们将卷挂载到了 /data 目录,接下来我们再就可以在这个目录浏览到数据了。例如,我们执行下列命令

      ls /data/9/2/
      

      示例输出:

      catalog.json                  normalize                     tap_config.json
      logs.log                      singer_rendered_catalog.json  target_config.json
      

      通过本地 shell 浏览 docker 卷的内容

      或者,如果您不想转换到 docker 镜像内的 shell ,您也可以通过 docker 来代理执行命令,将结果输出到当前 shell 环境,例如:

      docker run -it --rm --volume airbyte_workspace:/data busybox ls /data/9/2
      

      示例输出:

      catalog.json                 singer_rendered_catalog.json
      logs.log                     tap_config.json
      normalize                    target_config.json
      

      读取 Catalog.json

      例如,我们经常会需要读取 catalog 的内容。这种情况下我们可以像上面的例子一样,将数据挂载到容器,然后使用cat命令查看。

      docker run -it --rm --volume airbyte_workspace:/data busybox cat /data/9/2/catalog.json
      

      示例输出:

      {"streams":[{"stream":{"name":"exchange_rate","json_schema":{"type":"object","properties":{"CHF":{"type":"number"},"HRK":{"type":"number"},"date":{"type":"string"},"MXN":{"type":"number"},"ZAR":{"type":"number"},"INR":{"type":"number"},"CNY":{"type":"number"},"THB":{"type":"number"},"AUD":{"type":"number"},"ILS":{"type":"number"},"KRW":{"type":"number"},"JPY":{"type":"number"},"PLN":{"type":"number"},"GBP":{"type":"number"},"IDR":{"type":"number"},"HUF":{"type":"number"},"PHP":{"type":"number"},"TRY":{"type":"number"},"RUB":{"type":"number"},"HKD":{"type":"number"},"ISK":{"type":"number"},"EUR":{"type":"number"},"DKK":{"type":"number"},"CAD":{"type":"number"},"MYR":{"type":"number"},"USD":{"type":"number"},"BGN":{"type":"number"},"NOK":{"type":"number"},"RON":{"type":"number"},"SGD":{"type":"number"},"CZK":{"type":"number"},"SEK":{"type":"number"},"NZD":{"type":"number"},"BRL":{"type":"number"}}},"supported_sync_modes":["full_refresh"],"default_cursor_field":[]},"sync_mode":"full_refresh","cursor_field":[]}]}
      

      从 docker 卷导出catalog

      如果您想将 catalog 从 docker 卷中到出来,您可以再您的主机上执行下列命令:

      docker cp airbyte-server:/tmp/workspace/9/2/catalog.json .
      cat catalog.json
      

      在K8S环境浏览数据文件

      如果您的 Airbyte 运行在 k8s 上, 使用以下命令来浏览文件并将其复制到本地。
      选择一个您感兴趣的 pod 替换 podname,将 namespace 替换为您 airbyte 运行的 namespace。

      #替换podname 和 namespace
      kubectl exec -it <pod name> -n <namespace> -c main bash
      #例子
      kubectl exec -it destination-bigquery-worker-3607-0-chlle  -n jobs  -c main bash
      root@destination-bigquery-worker-3607-0-chlle:/config# ls
      FINISHED_UPLOADING  destination_catalog.json  destination_config.json
      

      想将pod内的文件复制到本地,可以执行下列命令:

      #替换podname 和 namespace
      kubectl cp <namespace>/<pod-name>:/config/destination_catalog.json ./catalog.json
      #例子
      kubectl cp jobs/normalization-worker-3605-0-sxtox:/config/destination_catalog.json ./catalog.json
      cat ./catalog.json
      

      使用 CSV 或者 JSON 作为目标的:检查本地数据目录

      如果您使用 CSV 或者 JSON 作为连接(管道)的目录,Airbyte 会将包含数据的结果文件写入容器的特殊目录/local/中。默认情况下,这个卷会挂载到宿主机的 /tmp/airbyte_local。因此,您可以到到您部署 Airbyte 宿主机的/tmp/airbyte_local目录,浏览产看对应文件。

      ::: 警告
      请确保 Docker Desktop 可以访问/tmp目录(如果使用mac系统,还需要确保docker desktop对 /private 目录具有权限,因为 /tmp 有一个指向 /private 的符号链接,否则它将无法工作)。
      :::

      或者,您也可以通过 docker 进行查看:

      #!/usr/bin/env bash
      
      echo "In the container:"
      
      docker run -it --rm -v /tmp/airbyte_local:/local busybox find /local
      
      echo ""
      echo "On the host:"
      
      find /tmp/airbyte_local
      

      示例输出:

      In the container:
      /local
      /local/data
      /local/data/exchange_rate_raw.csv
      
      On the host:
      /tmp/airbyte_local
      /tmp/airbyte_local/data
      /tmp/airbyte_local/data/exchange_rate_raw.csv
      1 条回复 最后回复 回复 引用 0
      • First post
        Last post