暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

面向 AI 的非结构化数据统一管理:Apache Cloudberry 的 Directory Table 实践(二)

HashData 2025-11-27
237

Apache Cloudberry™ (Incubating) 是 Apache 软件基金会孵化项目,由 Greenplum 和 PostgreSQL 衍生而来,作为领先的开源 MPP 数据库,可用于建设企业级数据仓库,并适用于大规模分析和 AI/ML 工作负载。

GitHub:  https://github.com/apache/cloudberry

文章作者:Asion,酷克数据解决方案架构师;整理:酷克数据
在上一篇《Apache Cloudberry 非结构化数据管理实战:Directory Table 基础与环境搭建》中,我们介绍了 Directory Table 的核心概念、运行机制,以及从环境配置到表对象创建的完整流程,帮助你快速构建起支持对象存储的非结构化数据管理环境。
本篇文章将继续深入,重点讲解 Directory Table 的数据管理与分析操作,包括文件的导入、导出、删除、查询等常见任务,并通过结合函数接口展示文件内容解析与标签化的实际案例,帮助你全面掌握非结构化数据在数据库中的全生命周期管理。

数据管理操作

导入数据 Import data

有两种方式可以将非结构化数据文件导入到 Directory table 中,方法 -1 是使用 copy 工具,将单个数据文件导入。方法 -2 是使用 gpdirtableload 工具,批量将文件导入。

  1. 查看准备的数据文件

Note:在本地存储的文件目录中,已经存储一些非结构化文本文件,用于导入到 Directory table 中。

    ls -trl;

    输出:

      pwd
      /home/gpadmin/datafile
      ls -trl
      total 4
      -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 14:44 s3.yaml
      1. 使用 copy 工具,导入单个数据文件

      Note:重复导入数据文件,如果采用相同的 relative_path 值,则会发生主键冲突的错误。

        dirhouse=# \COPY BINARY dir_tablename_oss FROM '/home/gpadmin/datafile/s3.yaml' 's3.yaml';


        参数Note
        dir_tablename_oss:目标表名称
        /home/gpadmin/datafile/s3.yaml:源文件在本地的存储位置
        s3.yaml:RELATIVE_PATH字段值

        输出:

          dirhouse=# \COPY BINARY dir_tablename_oss FROM '/home/gpadmin/datafile/s3.yaml' 's3.yaml';
          COPY 1
          dirhouse=# select * from dir_tablename_oss;
           relative_path | size |     last_modified      |               md5                | tag 
          ---------------+------+------------------------+----------------------------------+-----
           s3.yaml       |  215 | 2024-10-16 14:51:57+08 | e0452780f3982be7aebaafba63d6e8e4 | 
          (1 row)
          dirhouse=# \COPY BINARY dir_tablename_oss FROM '/home/gpadmin/datafile/s3.yaml' 's3.yaml';
          ERROR:  duplicate key value violates unique constraint "dir_tablename_oss_pkey"
          DETAIL:  Key (relative_path)=(s3.yaml) already exists.
          1. 使用 copy 工具,导入单个数据文件,以及携带标签信息

          Note:重复导入数据文件,采用相同 relative_path 字段值,则会返回主键冲突的错误。

            dirhouse=# \COPY BINARY dir_tablename_oss FROM '/home/gpadmin/datafile/s3.yaml' 's3.yaml' with tag 'file type:yaml';


            参数Note
            dir_tablename_oss:表名称
            /home/gpadmin/datafile/s3.yaml:源文件在本地的存储位置
            s3.yaml:RELATIVE_PATH字段值
            file type:yaml:TAGS字段值

            输出:

              dirhouse=# \COPY BINARY dir_tablename_oss FROM '/home/gpadmin/datafile/s3.yaml' 's3.yaml' with tag 'file type:yaml';
              COPY 1
              dirhouse=# select * from directory_table('dir_tablename_oss');
                         scoped_file_url           | relative_path |       tag       | size |     last_modified      |               md5                |          


                                                                    content                                                                                        


              -------------------------------------+---------------+-----------------+------+------------------------+----------------------------------+----------
              -----------------------------------------------------------------------------------------------------------------------------------------------------
              -----------------------------------------------------------------------------------------------------------------------------------------------------
              ------------------------------------------------------------------------------------------------------------------------------
               /16424/16418/16398_dirtable/s3.yaml | s3.yaml       | file type:yaml |  215 | 2024-10-16 15:00:18+08 | e0452780f3982be7aebaafba63d6e8e4 | \x6578656
              3757461626c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64
              706f696e743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f73656372657
              45f6163636573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
              (1 row)
              1. 使用 gpdirtableload 工具,批量导入数据文件

              Note:本地文件上传到数据库,建议可以将上传后的 relative_path 与本地目录保持一致,方便对文件进行管理。

                gpdirtableload --mode upload --database dirhouse --input-file /home/gpadmin/datafile --dest-path dir_file_path --table dir_tablename_oss --verbose


                参数Note
                mode:upload,上传模式
                database:dirhouse,数据库实例名称
                input-file:/home/gpadmin/datafile,数据文件在本地的存储位置
                dest-path:dir_file_path,对应reletive_path字段值的前半部分,后半部分是文件名称
                table:dir_tablename_oss,表名称
                verbose:无

                输出:

                  pwd
                  /home/gpadmin/datafile
                  ls -trl
                  total 16
                  -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 14:44 s3.yaml
                  -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 15:08 s4.yaml
                  -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 15:08 s5.yaml
                  -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 15:09 s6.yaml
                  gpdirtableload --mode upload --database dirhouse --input-file home/gpadmin/datafile --dest-path dir_file_path --table dir_tablename_oss --verbose
                  2024-10-16 15:18:03|INFO|gpdirtableload session started 2024-10-16 15:18:03
                  Password: input password!
                  2024-10-16 15:18:09|DEBUG|connection string: user=gpadmin host=localhost port=5432 database=dirhouse
                  2024-10-16 15:18:09|DEBUG|Successfully connected to database
                  2024-10-16 15:18:09|DEBUG|GPDB version is: 1.5.3 build dev.18.g9a8ee6c4
                  2024-10-16 15:18:09|INFO|running time: 6.54 seconds
                  2024-10-16 15:18:09|INFO|gpdirtableload succeeded
                  psql -d dirhouse -U gpadmin
                  psql (14.4, server 14.4)
                  Type "help" for help.


                  dirhouse=# select * from directory_table('dir_tablename_oss');
                             scoped_file_url           | relative_path | tag | size |     last_modified      |               md5                |                      


                                                            content                                                                                                    


                  -------------------------------------+---------------+-----+------+------------------------+----------------------------------+----------------------
                  -----------------------------------------------------------------------------------------------------------------------------------------------------
                  -----------------------------------------------------------------------------------------------------------------------------------------------------
                  ------------------------------------------------------------------------------------------------------------------
                   /16424/16418/16398_dirtable/dir_file_path/s5.yaml | dir_file_path/s5.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | \x65786563757461626c6
                  5706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e743a
                  20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f616363657
                  3735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                   /16424/16418/16398_dirtable/dir_file_path/s6.yaml | dir_file_path/s6.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | \x65786563757461626c6
                  5706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e743a
                  20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f616363657
                  3735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                   /16424/16418/16398_dirtable/dir_file_path/s3.yaml | dir_file_path/s3.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | \x65786563757461626c6
                  5706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e743a
                  20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f616363657
                  3735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                   /16424/16418/16398_dirtable/dir_file_path/s4.yaml | dir_file_path/s4.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | \x65786563757461626c6
                  5706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e743a
                  20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f616363657
                  3735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                  (4 rows)

                  删除数据

                  删除 Directory table 中指定的一个数据文件。

                  Note:需管理员权限,或者表 owner 权限。

                    dirhouse=# SELECT remove_file('dir_tablename_oss', 's3.yaml');


                    参数Note
                    dir_tablename_oss:表名称
                    s3.yaml:对应表中RELATIVE_PATH字段值

                    输出:

                      dirhouse=# SELECT remove_file('dir_tablename_oss', 's3.yaml');
                       remove_file 
                      -------------
                       t
                      (1 row)

                      导出数据

                      将 Directory table 表中的数据文件下载到本地路径存储。有两种方式可以进行数据文件的导出,方式 -1 是导出表中的单个数据文件,可以通过指定 relative_path 字段导出对应目标数据文件,方式 -2 是导出表中的所有数据文件,如果全量数据文件过大,则需要评估时间消耗。

                      Note:需管理员权限,或者表 owner 权限。

                      1. 使用 copy 工具,导出 Directory table 表中数据文件到本地路径
                        dirhouse=# \COPY BINARY Directory table dir_tablename_oss 's4.yaml' to '/home/gpadmin/destfile/s4.yaml';


                        参数Note
                        dir_tablename_oss:表名
                        s4.yaml:指定的目标数据文件信息,对应表中relative_path字段值
                        /home/gpadmin/destfile/s4.yaml:数据文件在本地的存储位置,必须是包括文件名称的完整路径
                        输出:
                        dirhouse=# \COPY BINARY Directory table dir_tablename_oss 's4.yaml' to '/home/gpadmin/destfile/s4.yaml';
                        COPY 1
                        dirhouse=# \q
                        ls -trl
                        total 4
                        -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 15:51 s4.yaml
                        1. 使用 gpdirtableload 工具,导出 Directory table 表中所有数据文件到本地路径

                        Note:在导出表中全部数据文件时,需要指定用户,该用户需要拥有管理员或者表 owner 权限。

                          gpdirtableload -d dirhouse --dest-path /home/gpadmin/download --table dir_tablename_oss --mode download -V -U gpadmin


                          参数Note
                          d:dirhouse,访问的数据库实例名称
                          dest-path:/home/gpadmin/download,数据文件在本地的存储目录
                          table:dir_tablename_oss,表名称
                          mode:download,下载模式
                          U:gpadmin,用户帐号

                          输出:

                            pwd
                            /home/gpadmin/download
                            ls -rl
                            total 0
                            gpdirtableload -d dirhouse --dest-path home/gpadmin/download --table dir_tablename_oss --mode download -V -U gpadmin
                            2024-10-16 15:56:10|INFO|gpdirtableload session started 2024-10-16 15:56:10
                            Password: 
                            2024-10-16 15:56:14|DEBUG|connection string: user=gpadmin host=localhost port=5432 database=dirhouse
                            2024-10-16 15:56:14|DEBUG|Successfully connected to database
                            2024-10-16 15:56:14|DEBUG|GPDB version is: 1.5.3 build dev.18.g9a8ee6c4
                            2024-10-16 15:56:15|INFO|running time: 4.55 seconds
                            2024-10-16 15:56:15|INFO|gpdirtableload succeeded
                            $ ls -trl
                            total 12
                            -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 15:56 s4.yaml
                            -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 15:56 s5.yaml
                            -rw-rw-r--. 1 gpadmin gpadmin 215 Oct 16 15:56 s6.yaml
                            drwxrwxr-x. 2 gpadmin gpadmin  66 Oct 16 15:56 dir_file_path
                            cd dir_file_path
                            ls
                            s3.yaml  s4.yaml  s5.yaml  s6.yaml
                            1. 使用 gpdirtableload 工具,导出 Directory table 表中的某个数据文件到本地路径
                              gpdirtableload -d dirhouse --dest-path /home/gpadmin/download --table dir_tablename_oss --input-file s6.yaml --mode download -V -U gpadmin


                              参数Note
                              d:dirhouse,访问的数据库实例名称
                              dest-path:/home/gpadmin/download,数据文件在本地的存储位置
                              table:dir_tablename_oss,表名称
                              input-file:s6.yaml,指定的具体数据文件,对应relative_path字段信息
                              mode:download,下载模式
                              U:gpadmin,用户帐号

                              查询数据

                              1. 查询表中所有数据文件

                              Note:不含有 content、scoped_file_url、dirtable_oid 字段信息。

                                select * from dir_tablename_oss;


                                参数Note
                                dir_tablename_oss:表名称
                                输出:
                                dirhouse=# select * from dir_tablename_oss;
                                 relative_path | size |     last_modified      |               md5                | tag 
                                ---------------+------+------------------------+----------------------------------+-----
                                 s4.yaml       |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                 dir_file_path/s4.yaml   |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                 dir_file_path/s6.yaml   |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                 s5.yaml       |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                 s6.yaml       |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                 dir_file_path/s3.yaml   |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                 dir_file_path/s5.yaml   |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                (7 rows)
                                1. 使用 directory_table()函数,查询表中所有数据文件

                                Note:可以看到 content 字段信息,但是不含 dirtable_oid 字段信息。

                                ❗️请谨慎使用 directory_table()函数。如果 content 字段很大,则会造成查询很慢或者报错,可用通过导出文件的方式去查看内容。

                                  select * from directory_table('dir_tablename_oss');


                                  参数Note
                                  dir_tablename_oss:表名称
                                  directory_table:内置函数名称

                                  输出:

                                  Note:关于 content 字段信息,是 directory_table()函数读取对象存储桶中文件,输出的信息。

                                    dirhouse=# select * from directory_table('dir_tablename_oss');
                                                 scoped_file_url             | relative_path | tag | size |     last_modified      |               md5                |                  


                                                                                  content                                                                                                


                                    -----------------------------------------+---------------+-----+------+------------------------+----------------------------------+------------------
                                    -----------------------------------------------------------------------------------------------------------------------------------------------------
                                    -----------------------------------------------------------------------------------------------------------------------------------------------------
                                    ----------------------------------------------------------------------------------------------------------------------
                                     /16424/16418/16398_dirtable/s5.yaml     | s5.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | \x657865637574616
                                    26c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e
                                    743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f61636
                                    36573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                                     /16424/16418/16398_dirtable/s6.yaml     | s6.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | \x657865637574616
                                    26c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e
                                    743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f61636
                                    36573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                                     /16424/16418/16398_dirtable/dir_file_path/s3.yaml | dir_file_path/s3.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | \x657865637574616
                                    26c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e
                                    743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f61636
                                    36573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                                     /16424/16418/16398_dirtable/dir_file_path/s5.yaml | dir_file_path/s5.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | \x657865637574616
                                    26c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e
                                    743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f61636
                                    36573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                                     /16424/16418/16398_dirtable/s4.yaml     | s4.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 | \x657865637574616
                                    26c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e
                                    743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f61636
                                    36573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                                     /16424/16418/16398_dirtable/dir_file_path/s4.yaml | dir_file_path/s4.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | \x657865637574616
                                    26c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e
                                    743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f61636
                                    36573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                                     /16424/16418/16398_dirtable/dir_file_path/s6.yaml | dir_file_path/s6.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | \x657865637574616
                                    26c65706174683a202f7573722f6c6f63616c2f636c6f756462657272792d64622f62696e2f67706261636b75705f73335f706c7567696e0a6f7074696f6e733a0a2020656e64706f696e
                                    743a20687474703a2f2f31302e31332e392e3136393a393132330a20206177735f6163636573735f6b65795f69643a206d696e696f61646d696e0a20206177735f7365637265745f61636
                                    36573735f6b65793a206d696e696f61646d696e0a20206275636b65743a20746573746275636b65740a2020666f6c6465723a206261636b75700a
                                    (7 rows)
                                    1. 使用 directory_table_without_content()函数,查询表中所有数据文件

                                    Note:不含 content 字段信息。

                                      select * from directory_table_without_content('dir_tablename_oss');


                                      参数Note
                                      dir_tablename_oss:表名称
                                      directory_table_without_content:内置函数名称
                                      输出:
                                      dirhouse=# select * from directory_table_without_content('dir_tablename_oss');
                                                   scoped_file_url             | relative_path | tag | size |     last_modified      |               md5                | dirtable_oid 
                                      -----------------------------------------+---------------+-----+------+------------------------+----------------------------------+--------------
                                       /16424/16418/16398_dirtable/s4.yaml     | s4.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 |        16429
                                       /16424/16418/16398_dirtable/dir_file_path/s4.yaml | dir_file_path/s4.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 |        16429
                                       /16424/16418/16398_dirtable/dir_file_path/s6.yaml | dir_file_path/s6.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 |        16429
                                       /16424/16418/16398_dirtable/s5.yaml     | s5.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 |        16429
                                       /16424/16418/16398_dirtable/s6.yaml     | s6.yaml       |     |  215 | 2024-10-16 15:18:09+08 | e0452780f3982be7aebaafba63d6e8e4 |        16429
                                       /16424/16418/16398_dirtable/dir_file_path/s3.yaml | dir_file_path/s3.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 |        16429
                                       /16424/16418/16398_dirtable/dir_file_path/s5.yaml | dir_file_path/s5.yaml   |     |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 |        16429
                                      (7 rows)
                                      1. 使用 relative_path 字段,检索目标数据文件

                                      Note:relative_path 字段为 TEXT 数据类型,支持 like 通配符方式进行检索

                                        dirhouse=# select * from dir_tablename_oss where relative_path = 'dir_file_path/s4.yaml';


                                        参数Note
                                        dir_tablename_oss:表名称
                                        dir_file_path/s4.yaml:指定的目标数据文件,对应表中的relative_path字段信息
                                        输出:
                                        dirhouse=# select * from dir_tablename_oss where relative_path = 'dir_file_path/s4.yaml';
                                         relative_path | size |     last_modified      |               md5                | tag 
                                        ---------------+------+------------------------+----------------------------------+-----
                                         dir_file_path/s4.yaml   |  215 | 2024-10-16 15:24:31+08 | e0452780f3982be7aebaafba63d6e8e4 | 
                                        (1 row)
                                        1. 使用 tag 字段,检索目标数据文件

                                        Note:tag 字段为 TEXT 数据类型,支持 like 通配符方式进行检索。

                                          dirhouse=# select * from dir_tablename_oss where tag = 'file type:yaml';
                                          参数Note
                                          dir_tablename_oss:表名称
                                          file type:yaml:tag字段值

                                          输出:

                                          Note:针对 content 字段信息,是通过 directory_table()函数读取对象存储桶中的文件获取到的信息。

                                            dirhouse=# select*from dir_tablename_oss where tag ='file type:yaml';
                                             relative_path | size |     last_modified      |               md5                |       tag       
                                            ---------------+------+------------------------+----------------------------------+-----------------
                                             s3.yaml       |  215|2024-10-1810:40:18+08| e0452780f3982be7aebaafba63d6e8e4 | file type:yaml
                                            (1row)

                                            高级分析

                                            HashML 是一款面向数据科学与 AI 应用的集成工具,支持机器学习、深度学习及大模型相关算法的开发、微调与推理部署。

                                            在 Apache Cloudberry 数据库中,Directory Table 可与 HashML 深度集成,用于实现非结构化数据的高级分析(Advanced Analytics)。通过调用 HashML 提供的算法库与 API,系统能够对存储于 Directory Table 中的非结构化数据文件进行自动化解析、清洗与格式转换,生成高质量、结构化的语料数据。

                                            这些经处理的数据可直接应用于 AI 模型的训练、微调及企业知识库构建等场景,从而显著提升数据利用效率与模型性能。

                                            结语

                                            随着 AI 应用对数据质量和多样性的要求不断提高,非结构化数据管理的重要性日益凸显。Apache Cloudberry 通过 Directory Table 实现了数据库与对象存储的融合,为文件级数据的统一管理与分析提供了高效方案。借助这一能力,开发者能够更轻松地构建面向智能应用的数据底座,为后续的语料管理与 AI 模型训练奠定坚实基础。

                                            👇🏻️扫码加入 Apache Cloudberry 交流群👇🏻️

                                            文章转载自HashData,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                            评论