使用 Linux 命令 df -Ph > metric.csv 創建此輸出:
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 786M 2.2M 783M 1% /run'''
我登錄到 postgres 并創建表:
CREATE TABLE metric(filesystem varchar,size varchar,used
varchar,available varchar,use varchar,mounted_on varchar, PRIMARY
KEY(filesystem));

接下來我使用 COPY 命令將資料插入到這個表中:
COPY metrics (filesystem,size,used,available,use,mounted_on) FROM '/data/metric.csv' CSV HEADER DELIMITER ',';
我收到以下錯誤:
ERROR: missing data for column "size"
CONTEXT: COPY metrics, line 2: "udev 3.9G 0 3.9G 0% /dev"
我很感激有關如何更正此問題的任何幫助或建議,以便我可以將我的資料插入到資料庫中。
uj5u.com熱心網友回復:
你可能想試試這個:
df -Ph | awk 'BEGIN{OFS=","}NR>1{$1=$1; print}' > metric.csv
正如我在上面的評論中提到的,您的 csv 檔案不是 csv。awk命令擺脫了“頭”(我假設你不希望在表中攝取),并取代了空間用逗號。
關于 awk - 陳述句的一些解釋性詞語。
在該BEGIN{} 部分中,處理發生在 awk 實際處理任何輸入之前。我們在這里告訴 awk,用作輸出欄位分隔符 ( OFS )。默認情況下 awk 使用任意數量的連續空格。
NR>1 告訴 awk 跳過第一行(NR == 記錄數),從而省略標題。
{$1=$1;print}- 不幸的是,awk 需要將第一個欄位分配給它自己來處理該行;在print少了點什么,你認為它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/396777.html
標籤:linux PostgreSQL的 postgresql-12
下一篇:如何從sql表中獲取最新版本號
