首页 > 其他分享 >openGauss file_fdw

openGauss file_fdw

时间:2024-04-28 09:58:17浏览次数:24  
标签:选项 文件 fdw 指定 file openGauss COPY

file_fdw

file_fdw模块提供了外部数据封装器file_fdw,可以用来在服务器的文件系统中访问数据文件。数据文件必须是COPY FROM可读的格式,具体请参见COPY的介绍。使用file_fdw访问的数据文件是当前可读的,不支持对该数据文件的写入操作。

当前openGauss会默认编译file_fdw,initdb的时候会在pg_catalog schema中创建该插件。

file_fdw对应的server和外表只允许数据库的初始用户或开启运维模式时的运维管理员创建。

使用file_fdw创建的外部表可以有下列选项:

  • filename

    指定要读取的文件,必需的参数,且必须是一个绝对路径名。

  • format

    远端server的文件格式,支持text/csv/binary三种格式,和COPY语句的FORMAT选项相同。

  • header

    指定的文件是否有标题行,与COPY语句的HEADER选项相同。

  • delimiter

    指定文件的分隔符,与COPY的DELIMITER选项相同。

  • quote

    指定文件的引用字符,与COPY的QUOTE选项相同。

  • escape

    指定文件的转义字符,与COPY的ESCAPE选项相同。

  • null

    指定文件的null字符串,与COPY的NULL选项相同。

  • encoding

    指定文件的编码,与COPY的ENCODING选项相同。

  • force_not_null

    这是一个布尔选项。如果为真,则声明字段的值不应该匹配空字符串(也就是, 文件级别null选项)。与COPY的 FORCE_NOT_NULL选项里的字段相同。

说明:

  • file_fdw不支持COPY的OIDS和 FORCE_QUOTE选项。
  • 这些选项只能为外部表或外部表的字段声明,不是file_fdw的选项,也不是使用file_fdw的服务器或用户映射的选项。
  • 修改表级别的选项需要系统管理员权限。因为安全原因,只有系统管理员能够决定读取的文件。
  • 对于一个使用file_fdw的外部表,EXPLAIN可显示要读取的文件名和文件大小(单位:字节)。 指定了COSTS OFF关键字之后,不显示文件大小。

使用file_fdw

  • 创建服务器对象:CREATE SERVER

  • 创建用户映射:CREATE USER MAPPING

  • 创建外表:CREATE FOREIGN TABLE

    说明:

    • 外表的表结构需要与指定的文件的数据保持一致。
    • 对外表做查询操作,写操作不被允许。
  • 删除外表:DROP FOREIGN TABLE

  • 删除用户映射:DROP USER MAPPING

  • 删除服务器对象:DROP SERVER

注意事项

  • 使用file_fdw需要指定要读取的文件,请先准备好该文件,并授予数据库对该文件的读取权限。
  • 不支持DROP EXTENSION file_fdw操作。

标签:选项,文件,fdw,指定,file,openGauss,COPY
From: https://www.cnblogs.com/renxyz/p/18163082

相关文章

  • openGauss Foreign-Data-Wrapper
    ForeignDataWrapperopenGauss的FDW(ForeignDataWrapper)可以实现各个openGauss数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的远程数据库类型包括Oracle、Mysql(MariaDB)、openGauss(postgres_fdw)、file_fdw、dblink。用于Oracle的外部数据包装器mysql_......
  • openGauss MOT-SILO增强特性
    MOTSILO增强特性SILO[对比:磁盘与MOT]凭借其基本算法流程,优于我们在研究实验中测试的许多其他符合ACID的OCC算法。然而,为了使SILO成为产品级机制,我们必须用许多在最初设计中缺失的基本功能来增强它,例如:新增对交互式事务的支持,其中事务的SQL运行在客户端实现,而不是作为服务器端......
  • openGauss 如何解决-out-of-memory-allocating-xxx-bytes-after-a-total-of-xxx-bytes
    如何解决"outofmemoryallocatingxxxbytesafteratotalofxxxbytes"报错问题如何解决编译过程中出现的“outofmemoryallocatingxxxbytesafteratotalofxxxbytes”报错。回答报错原因:脚本中的编译过程都添加了-sj参数,同时机器配置较低,内存不足,并发数太大导致......
  • openGauss 轻量版安装包编译
    轻量版安装包编译使用build/script/cmake_package_mini.sh脚本构建openGauss轻量版安装包。前提条件已按照搭建编译环境的要求准备好相关软硬件,并且已参考代码下载下载了代码。已完成开源软件编译构建,具体请参见开源软件编译构建。了解cmake_package_mini.sh脚本的参数选项......
  • openGauss 如何解决-Configure-error-C-compiler-cannot-create-executables-报错
    如何解决“Configureerror:Ccompilercannotcreateexecutables”报错问题如何解决版本编译时出现的“Configureerror:Ccompilercannotcreateexecutables”报错。回答报错原因:binarylibs文件不完整或者被损坏。解决办法:若binarylibs是通过开源软件构建而来,请重新构......
  • openGauss 如何解决-g++-fatal-error-Killed-signal-terminated-program-cclplus-报错
    如何解决"g++:fatalerror:Killedsignalterminatedprogramcclplus"报错问题如何解决编译过程中出现的"g++:fatalerror:Killedsignalterminatedprogramcclplus"报错。回答报错原因:脚本中的编译过程都添加了-sj参数,并发数太大导致错误。解决办法:编译过程中降......
  • 使用 chezmoi & vscode, 管理你的 dotfiles
    什么是dotfilesInUnix-likeoperatingsystems,anyfileorfolderthatstartswithadotcharacter(forexample,/home/user/.config),commonlycalledadotfileordotfile.任何以.开头去命名的文件或者目录都可以称为dotfile,在Unix-like系统一般用的比较多......
  • 使用Files.walk删除文件
    摘要:使用Files.walk删除指定文件名的文件。  使用Files.walk工具,递归判断指定目录中的常规文件路径名是否符合约定名称,如果满足条件就删除。publicclassDelFile{//文件名在此集合就删除privatestaticSet<String>givenFileNames=newHashSet<>();publ......
  • 【Qt 专栏】文件对话框 文件的弹窗选择-QFileDialog
    前言:通过按钮实现文件弹窗选择以及关联的操作效果图就和平时用电脑弹出的选文件对话框一样原型图技能:头文件:#include<QFileDialog>//头文件QStringfilename=QFileDialog::getOpenFileName(this,"弹窗标题","E://","Images(*.png*.jpg)");弹出对话框选择文件 实......
  • openGauss DELETE语句
    DELETE语句DELETE语句可以从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在,将删除表中所有行,结果只保留表结构。语法格式DELETEFROMtable_name[WHEREcondition];参数说明table_name目标表的名称(可以有模式修饰)。取值范围:已存在的表名。condition......