gpt4 book ai didi

PostgreSQL 数据库中的 Linux 系统利用率导入

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:37 24 4
gpt4 key购买 nike

我想导入 PostgreSQL 数据库中日常 Linux 系统使用情况文件。

# ls /var/log/sa
sar -f sa13 >>/tmp/test_clean.csv

我可以使用上面的命令生成 .csv 文件,但这种格式允许我导入到 PostgreSQL 数据库中。

root#> less /tmp/test_clean.csv
<Linux redhat version> (servername) <date> _x86_64_ (2 CPU)

12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.10 0.00 0.05 0.02 0.00 99.83
12:20:01 AM all 0.12 0.00 0.06 0.02 0.00 99.80
12:30:01 AM all 0.08 0.00 0.05 0.02 0.00 99.85
12:40:01 AM all 0.06 0.00 0.05 0.02 0.00 99.88
12:50:01 AM all 0.07 0.00 0.05 0.02 0.00 99.86
01:00:01 AM all 0.09 0.00 0.05 0.02 0.00 99.84
01:10:01 AM all 0.07 0.00 0.05 0.02 0.00 99.86

任何解决方案..!!

最佳答案

首先,您需要清除文件的前两行:然后您将创建一个表。最后,您将插入到表中。

a few ways清理文件,但您可以运行类似

cat /tmp/test.csv|awk 'NR>2' > /tmp/test_clean.csv

然后您需要创建一个表:syntax是这样的:

CREATE TABLE system_utilzation (
ts TIME,
cpu TEXT,
user NUMERIC,
nice NUMERIC,
system NUMERIC,
iowait NUMERIC,
steal NUMERIC,
idle NUMERIC
);

如果您是第一次填充表格,则可以使用 COPY\COPY 将 CSV 文件插入表格中。如果您希望它作为例行作业运行,您需要[INSERT][3]它。

您可以使用空临时表来做到这一点。临时表对于每个连接都是唯一的,并且在您与 Posgres 断开连接后将自动删除:创建临时表 temp_system_utilzation AS SELECT * FROM system_utilzation WHERE 1=2;然后您将使用 psql\COPY 填充它。

psql -h remotehost -d remote_mydb -U myuser -c "\copy temp_system_utilzation from '/tmp/test_clean.csv' with CSV HEADER"

最后,您可以使用如下方式将临时表插入到完整表中:INSERT INTO ystem_utilzation SELECT * FROM temp_system_utilzation;

关于PostgreSQL 数据库中的 Linux 系统利用率导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50861718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com