- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 postgreSQL 9.5 中:
我有一个名为:sheetheight(由 file_fdw 创建)的外表和一个名为:dzlog(由 postgres_fdw 创建)的外表。
1- 为了连接外部表,我有以下查询:
SELECT * from dzlog INNER JOIN sheetheight ON dzlog.ullid = sheetheight.ullid
;
EXPLAIN ANALYZE
为上述查询返回:
-------------------------------------------------
Hash Join (cost=111.66..13688.18 rows=20814 width=2180) (actual time=7670.872.
.8527.844 rows=2499 loops=1)
Hash Cond: (sheetheight.ullid = dzlog.ullid)
-> Foreign Scan on sheetheight (cost=0.00..12968.10 rows=106741 width=150)
(actual time=0.116..570.571 rows=223986 loops=1)
Foreign File: D:\code\sources\sheetHeight_20151025_221244_0000000004987
6878996.csv
Foreign File Size: 18786370
-> Hash (cost=111.17..111.17 rows=39 width=2030) (actual time=7658.661..765
8.661 rows=34107 loops=1)
Buckets: 2048 (originally 1024) Batches: 32 (originally 1) Memory Usa
ge: 4082kB
-> Foreign Scan on dzlog (cost=100.00..111.17 rows=39 width=2030) (ac
tual time=47.162..7578.990 rows=34107 loops=1)
Planning time: 8.755 ms
Execution time: 8530.917 ms
(10 rows)
查询的输出有两列名为 ullid。
ullid,date,color,sheetid,dz0,dz1,dz2,dz3,dz4,dz5,dz6,dz7,ullid,sheetid,pass,...
2- 为了从 python 应用程序直接访问 csv 文件和 sql 本地表,我有:我通过不使用 FDW 而是使用 Pandas merge dataframe
从 python 应用程序直接访问 csv 文件和 postgreSQL 本地表来完成相同的查询。这个连接是原始连接,所以我首先获取 csv 文件,然后使用 python 中的 pandas 库获取 sql 表,然后我根据公共(public)列合并两个数据帧
import pandas as pd
def rawjoin(query,connection=psycopg2.connect("dbname='mydb' user='qfsa' host='localhost' password='123' port=5433")):
query=("SELECT * FROM dzlog;")
firstTable= pd.read_csv('.\sources\sheetHeight_20151025_221244_000000000498768789.csv', delimiter=';', header=0)
secondTable =pd.read_sql(query,connection)
merged= pd.merge(firstTable, secondTable, on= 'ullid', how='inner')
return merged
结果是具有一个 ullid 列的连接数据框。
知道这种区别吗?我做了其他类型的连接,RAW访问和FDW访问的结果是一样的,其他查询如下:
q7=("SELECT dzlog.color FROM dzlog,sheetheight WHERE dzlog.ullid = sheetheight.ullid;")
q8=("SELECT sheetheight.defectfound FROM dzlog, sheetheight WHERE dzlog.ullid = sheetheight.ullid;")
q9=("SELECT dzlog.color, sheetheight.defectfound FROM dzlog, sheetheight WHERE dzlog.ullid= sheetheight.ullid;")
最佳答案
我不知道你的第二个例子是做什么的,所以很难说。使用哪个库?它是生成 SQL 还是在应用程序中执行连接(这几乎总是性能损失)?如果这导致 SQL 语句,语句是什么?
第一个查询返回该列两次,因为您要求它从涉及的所有 表中返回所有 列,并且两个表都有该列,这是连接条件强制执行的平等。
你可以像这样写一个只输出列一次的 SQL 语句:
SELECT *
FROM dzlog
JOIN sheetheight
USING (ullid);
这看起来很像第二个示例中的代码,不是吗?
关于postgresql - 加入 file_fdw 外表和 postgres_fdw 外表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43251160/
我在使用 postgres_fdw 时遇到了一些问题。 CREATE SERVER foreign_server FOREIGN DATA WRAPPER postgres_fdw
使用 postgres_fdw,我需要在指定模式中创建外部表以防止名称冲突。为了隔离我一直遇到的问题,我在同一集群上设置了两个测试 postgres 数据库,import_test 和 export_
我写了这个 PostgreSQL 代码行,但是我有以下错误: ERROR: could not connect to server "server\sqlexpress" SQL state: 080
我有一个生产数据库“PRODdb1”,它有一个只读用户帐户。我需要查询(选择语句)这个数据库并将数据插入到名为“RPTdb1”的辅助数据库中。我最初计划从我的选择中在 PRODdb1 中创建一个临时表
我有两个数据库设置为同一个 Postgresql 9.4 数据库集群的一部分,我正在尝试使用 postgres_fdw 从另一个数据库访问其中一个中的表。我已将其全部设置好并以 super 用户身份工
我正在使用两个 PostgreSQL 9.6 数据库,并尝试使用 postgres_fdw 从另一个数据库查询一个数据库(一个是具有数据的生产备份数据库,另一个是用于进行各种分析的数据库)。 虽然查询
这是我要运行的查询 - 让我运行此查询的当前数据库是 db1,而我要插入记录的数据库是 db2。 insert into db2.employee(id, name, group) values(
如前所述here postgres_fdw 无法访问索引。 解决方法是在远程服务器上创建一个 View ,然后在本地服务器上为该 View 创建外部表包装器。 但是如果我想将参数传递给我的 View
我的想法是我有一个名为 northwind 的本地数据库,并且使用 postgres_fdw 我想连接本地主机上另一个名为 test 的数据库(远程连接模拟,比如当我的数据库中的表被更新时,在其他数据
我正在尝试使用 Azure DB for PostgreSQL 实例中的 PostgreSQL 外部数据包装器 (postgres_fdw) 扩展。应支持外部数据包装器,如 Azure DB for
我正在尝试使用 PostgreSQL Maestro 工具将来自“本地”数据库的外键引用到另一个数据库中的另一个主键(实际上,它们都在同一台远程机器上)。我听说过 postgres_fdw 模块可以创
(警告道歉和骇客入侵...) 背景: 我有一个遗留应用程序,我想避免重写它的大量 SQL 代码。我正在尝试加快它执行的特定类型的非常昂贵的查询(即:容易实现的成果)。 它有一个由 transactio
我有一个用例,将数据分布在许多服务器上的许多数据库中,所有这些都在 postgres 表中。从任何给定的服务器/数据库,我可能需要查询另一个服务器/数据库。查询非常基本,标准选择在标准字段上带有 wh
可以使用 postgres_fdw 通过 ssh 隧道连接吗? 数据库只能从数据库服务器访问,我需要从另一个远程服务器加入。数据库服务器使用 SSH key 登录。 如果可以,请问怎么做? 最佳答案
在 postgreSQL 9.5 中: 我有一个名为:sheetheight(由 file_fdw 创建)的外表和一个名为:dzlog(由 postgres_fdw 创建)的外表。 1- 为了连接外部
我在 RDS 中有两个 Postgres 9.3.5 实例,都在一个安全组中,允许来自安全组内的所有入站流量和所有出站流量。我正在尝试设置一个数据库,以便能够通过 postgres_fdw 从另一个表
我正在使用 postgres_fdw 连接到另一个 PostgreSQL 数据库。有时查询的性能很好,但有时查询可能会花费异常长的时间。我遇到了一个问题,如果我使用函数 CURRENT_DATE,查询
假设我有这样的查询 select * from remote_table join local_table using(common_key) 其中 remote_table 是一个带有 pos
从 PostgreSQL 10.x 开始,外部表支持聚合下推。 我注意到 sum 和 count 操作被推送到远程服务器,但 min 和 max 的推送方式不同。 select min(col) f
我是一名优秀的程序员,十分优秀!