使用COPY命令在Vertica中載入資料

2021-08-11 06:14:59 字數 2314 閱讀 8047

使用copy語句批量載入

copy語句是將大量資料載入到vertica資料庫中的最有效方式。您可以使用copy命令將乙個或多個檔案複製到群集主機上。對於批量載入,最有用的copy命令是:

copy local:將資料檔案或所有指定的檔案從本地客戶端系統載入到伺服器處理檔案的vertica主機。

在vertica群集中copy源資料:將資料檔案或來自不同**的所有指定檔案(如json和csv)載入到vertica群集中的vertica內部格式。

使用自定義源,過濾器或解析器的使用者定義載入(udl)功能copy:通過控制資料載入設定從定製的使用者定義的源,解析器和過濾器載入資料檔案或指定的檔案。

所有型別的copy語句共享相同的方法和過程,但它們都有不同的限制。無論差異如何,copy宣告總是有兩個階段:

第一階段(啟動器)載入和解析檔案並將檔案分發到其他節點。

第二階段(執行者)處理所有節點上的資料。

通過copy,您可以使用許多執行引擎操作符進行批量載入。一些用於載入乙個或多個檔案的執行引擎操作符是載入,解析,載入聯合,段,排序/合併和data target。

如果目標表被分段,則copy語句為每個projection建立段。分段定義了資料如何在集群節點之間傳播以用於查詢效能和快速資料清除。

copy語句如何載入資料

載入乙個或多個檔案的copy語句工作流分為兩個階段:

第一階段

1.負載運算子將原始檔載入到資料庫中。 parse操作符解析資料庫中載入的資料。

2.在分組資料之前,load union運算子將解析的資料合併到乙個容器中。operator在載入多個檔案時處於活動狀態,載入乙個檔案時無效。

3. segment operator根據資料的大小將解析的資料分成乙個或多個projection。另外,表分割槽會隔離每個節點上的資料,以便在多個資料庫節點間均勻分布資料。這樣做確保所有節點都參與執行查詢。

第二階段

1. 排序運算子對分段資料和projection進行排序。合併運算子適當地合併排序資料。排序和合併運算子用於聚合資料。

2. data target操作員複製磁碟上的資料。

下圖顯示了兩個階段載入乙個或多個檔案的工作負載。淺藍色和深藍色框代表執行引擎操作員。

在具有分攤負載特性的vertica 8.0中,如果所有節點都可以訪問源資料,則在幾個節點上發生階段i。分攤負載是可分割的負載,因此您可以在多個節點上載入單個資料檔案。如果源在多個節點上可用並且可以分割,內建的分隔符可以自動分配負載。如果分配的負載不可用,則階段i僅在讀取檔案的節點上發生。

階段ii使用額外的執行引擎操作員預先連線**和live aggregate **。下圖pre-join projection顯示維度表的附加執行引擎操作符join和scan。下圖顯示了其他group by / top-k執行引擎運算子。

pre-join projection為維度表新增了額外的執行引擎運算子join和scan。

實時聚合**新增group by / top-k執行引擎運算子。

負載方式

根據要載入的資料,copy語句具有多種載入方法。您可以從三種載入方式中選擇:

copy auto

copy direct

copy trickle

何時使用copy auto

copy使用auto方法將資料載入到vertica wos中。對於較小的批量裝載,請使用此預設的自動載入方法; 當您無法確定檔案的大小時,auto選項最為有用。一旦wos已滿,copy將繼續直接載入到磁碟上的ros容器。對ros資料進行排序和編碼。

何時使用copy direct

copy使用direct方法將資料直接載入到ros容器中。對於大批量負載(100 mb或更多),請使用direct載入方法。 direct方法通過避免wos並將資料載入到ros容器中來提高大檔案的效能。使用direct載入許多較小的資料集會導致許多ros容器,這些容器必須稍後組合。

何時使用copy trickle

copy使用trickle方法將資料直接載入到wos中。 完成初始批量載入後,使用trickle載入方法遞增地載入資料。 如果wos已滿,則會發生錯誤,並回滾整個資料載入。 只有在您的站點上進行了精細調整的負載和移出過程時,才能使用此方法,並且您確信wos可以儲存正在載入的資料。 當將資料載入到分割槽表中時,此選項比auto更有效。

linux cp命令, copy 命令

1.cp copy 語法 cp 選項 引數 選項 a 此引數的效果和同時指定 dpr 引數相同 d 當複製符號鏈結時,把目標檔案或目錄也建立為符號鏈結,並指向與原始檔或目錄鏈結的原始檔案或目錄 f 強行複製檔案或目錄,不論目標檔案或目錄是否已存在 i,覆蓋已有檔案之前先詢問使用者 l,對原始檔建立硬...

scp命令在Linux系統之間copy檔案

不同的linux之間copy檔案常用有3種方法,第一種就是ftp,也就是其中一台linux安裝ftp server,這樣可以另外一台使用ftp的client程式來進行檔案的copy。第二種方法就是採用samba服務,類似windows檔案copy 的方式來操作,比較簡潔方便,第三種就是利用scp命令...

oracle sqlplus中copy命令的用法

一 語法 首先明確sql plus copy command不是乙個方法或是函式,也不是乙個sql語句,它是乙個命令 command 這個命令 必須在sql plus裡執行。sql plus copy command的語法 二 引數說明 from database 源資料庫 to database ...