首页 > 数据库 >PostgreSQL外部表(转)

PostgreSQL外部表(转)

时间:2024-04-28 09:22:58浏览次数:26  
标签:PostgreSQL 外部 数据源 数据库 导出 导入 数据

当谈到外部表和数据导入导出时,PostgreSQL提供了一些功能和工具,使得处理外部数据变得更加便捷。让我们逐步介绍这些概念和技术。

外部表(Foreign Tables):

外部表是PostgreSQL中的一个概念,它允许你在数据库中访问和查询外部数据源中的数据,而无需将数据实际复制到数据库中。通过外部表,你可以像查询常规数据库表一样查询外部数据,这对于与其他数据库或文件进行集成非常有用。

创建外部表的步骤如下:

  • 创建服务器(Server):首先,你需要创建一个服务器对象,它定义了与外部数据源的连接信息。
  • 创建外部数据源(Foreign Data Wrapper):然后,你需要创建一个外部数据源对象,它指定了外部数据源的类型和访问参数。
  • 创建外部表:最后,你可以创建一个外部表,它引用了外部数据源,并定义了表的结构和访问权限。

以下是一个创建外部表的示例:

-- 创建服务器
CREATE SERVER my_server
  FOREIGN DATA WRAPPER postgres_fdw
  OPTIONS (host 'external_server', dbname 'external_db', port '5432');

-- 创建外部数据源
CREATE FOREIGN DATA WRAPPER my_wrapper
HANDLER postgres_fdw_handler
VALIDATOR postgres_fdw_validator;

-- 创建外部表
CREATE FOREIGN TABLE my_external_table (
id INT,
name TEXT,
age INT
)
SERVER my_server
OPTIONS (schema_name 'public', table_name 'external_table');

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

创建外部表后,你可以像查询常规表一样对其进行操作,例如使用SELECT语句检索数据。

数据导入导出:

PostgreSQL提供了多种方法用于将数据导入到数据库或从数据库导出数据。下面是几种常见的数据导入导出技术:

  • COPY命令:COPY命令用于将数据从文件导入到数据库表中,或将表数据导出到文件。你可以使用COPY命令导入导出纯文本文件、CSV文件等。示例:
sqlCopy code-- 从文件导入数据
COPY my_table FROM '/path/to/data.csv' DELIMITER ',' CSV;

-- 导出表数据到文件
COPY my_table TO '/path/to/data.csv' DELIMITER ',' CSV;

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • pg_dump和pg_restore工具:pg_dump和pg_restore是用于备份和还原数据库的工具,它们也可以用于导出和导入数据。示例:
bashCopy code# 导出数据库到文件
pg_dump -U username -d dbname -t table_name -f /path/to/dump_file.sql

导入文件到数据库

pg_restore -U username -d dbname /path/to/dump_file.sql

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 外部工具:除了上述内置工具,你还可以使用第三方工具,如psql的\copy命令或ETL工具(如Talend、Pentaho等)来实现更复杂的数据导入导出需求。

以上是PostgreSQL中使用外部表和进行数据导入导出的一些重要概念和技术。希望这些解释能够帮助你理解并开始在PostgreSQL中处理外部数据的旅程。请记住,通过实践和进一步研究,你可以进一步提升自己在这些领域的技能水平。

标签:PostgreSQL,外部,数据源,数据库,导出,导入,数据
From: https://www.cnblogs.com/lrzy/p/18162997

相关文章

  • ubuntu18源码安装postgresql15.2数据库
    由于官方的源只能安装到pg10这个版本,整了好一会没有成功就改为源码安装了。下载源代码源码并解压wgethttps://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.gztar-xfpostgresql-15.2.tar.gzcdpostgresql-15.2/安装C++相关开发库和编译工具aptinst......
  • postgresql中视图建立,字段拼接,同一个表的多行之间的多个字段相减
    首先表是这样的CREATETABLEpublic.tb_realtime_data( s_idvarchar(48)NOTNULL, sensor_namevarchar(48)NULL, sensor_index_codevarchar(48)NULL, sensor_valuenumeric(20,10)NULL, statistics_statusint4NULL, alarm_timetimestampNOTNULL, create_time......
  • postgresql 多条记录合并一条,或取最新的一条数据
    将一个表中的某一列的多行数据拼接成一行一种方法SELECTperson_idASjob_no,string_agg(person_name,',')asstr_person_nameFROMpublic.tb_attendance_modelWHEREcreate_time>='2019-06-1700:00:00.000000'ANDcreate_time<'2020-0......
  • PostgreSQL14.11一键启动免安装绿色版
    PostgreSQL14.11_x64一键启动免安装版使用方法:解压后,将整个文件夹放到你希望的位置,注意路径不要包含中文。双击运行bat即可,第一次打开会自动初始化数据库目录。注意:pgsql15版本以后,需要使用navicat16.2以上版本才可以正常连接。想使用最新版本的PostgreSQL16.2,可以下载P......
  • postgresql 绿化
    下载官方原版二进制包下载地址解压后删除目录doc、include、pgAdmin4、StackBuilder、symbols,分别对应文档、开发用的头文件、pgadmin管理工具、StackBuild工具、开发用的静态链接库需要安装vc2010_redisinitdb.exe-D..\data-EUTF8pg_ctl-D../datastartcr......
  • jmeter :包含控制器引用外部测试片段
    什么场景适合用测试片段:多人协作接口测试时,每个人负责的模块接口不一样,使用测试片段可以减少脚本重复编写,很好解决模块间脚本依赖问题。1.添加测试片段并保存测试计划:将已调试好的请求和调试取样器放到测试片段(外部测试片段)添加测试片段保存的另一种方法:  按ctrl+选中请求......
  • postgresql中两张表的聚合函数合并到一列或一行,做除法,并保留两位小数
    --两张表的无关数据合并到一张表SELECTA.name,B.nameFROM(selecto.name,row_number()over(orderbyname)fromtb_orgaso)A FULLJOIN (selectr.name,row_number()over(orderbyr.name)fromtb_regionasr)BONA.row_number=B.row_number;这里是利用......
  • 使用SSH从公网服务器简易使用内网任意机器服务,比如从外部下载代码
    如果有一个台外部的机器waibu-host,位于阿里云,腾讯云,亚马逊,azure云等等; 假设你想从这个waibu-host上访问公司任意服务,下载代码,访问http服务,等等,或者你机器上的服务,不需要额外工具,只要ssh反向就可以实现; 借个图,如下: 举个例子,如果你想从公司内部......
  • 使用FAL操作STM32F103VET6单片机的片内flash和外部norflash(SFUD驱动)
    1.新建一个命名为fal的工程,控制台串口我使用了uart5,对应管脚PC12和PD2工程新建好以后,编译,报错双击改报错信息,跳转到下图这个位置 把RT_WEAK改为rt_weak,后重新编译,下载到单片机中重新正常运行2.双击CubeMXSettings,选择正确的单片机型号,配置norflash使用的SPI......
  • vis.js外部自定义折线图
    代码案例<!doctypehtml><html><head><title>Timeline</title><scripttype="text/javascript"src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>......