檔案類型為 Excel 時:
1)讀取方式改善:
原「檔案讀取」改名為「單檔案讀取」
原「資料夾讀取」改名為「多檔案合併讀取」
2)「多檔案合併讀取」時,新增「故障容許度機制」配置項
3)原「Sheet 名」功能變更為「Sheet篩選」,支援:直接選取、自訂條件、所有sheet
4)匯出欄位中:
增加內建欄位: sheetName(sheet名)
支援刪除已取得的欄位
展示「讀取欄」資訊
檔案類型為 CSV 時:
1)原「讀取起始列」配置項修改為「讀取列範圍」,並新增「讀取欄範圍」
歷史版本更新
FineDataLink 伺服器本地和 FTP/SFTP 伺服器中:
支援批量讀取同格式的 Excel 和 CSV 檔案
支援 Excel 和 CSV 檔案自訂匯出欄位類型
支援 CSV 檔案跨越前 N 列取數
支援 TXT 檔案讀取
支援忽略後綴名大小寫讀取
支援讀取 json/xml 檔案
檔案類型選擇 CSV 時,支援讀取類 csv 檔案類型,例如tsv、log、dt(csv 和 xml 混合格式)等
支援新增內建字段「fileName(檔案名稱)」、「filePath(檔案路徑)」、「lastModifiedTime(檔案修改時間)」,在配置中可新增三個內建欄位作為匯出欄位
檔案讀取後綴取消必填校驗
使用者在搭建數倉時,希望能從 FineDataLink 伺服器本地或者共享目錄中讀取 Excel 、CSV 檔案資料。
同時可以透過 FDL 將 Excel 、CSV 檔案直接上傳至 FDL 伺服器本地。
FineDataLink 支援「檔案輸入」功能,可讀取檔案資料。如下圖所示:
1)資料來源支援的資料源類型如下表所示:
2)4.0.24 版本之前,僅支持上傳後綴小寫的 Excel 和 CSV 文件,對於大寫後綴的 Excel 和 CSV 文件上傳校驗不通過。若文件存在,但無法讀取,請檢查文件後綴是否爲大寫 .CSV/.XLSX,請手動修改爲小寫。
1)「檔案輸入」算子前端日誌顯示的讀取量,不包含表頭這列資料。
比如 Excel 資料有 100 w列,包括 1 列表頭+999999列資料,「檔案輸入」算子讀取後,前端日誌會顯示讀取 999999 列資料。
2)「檔案輸入」算子中,檔案地址、資料夾地址、檔案篩選、Sheet名設定項中支援使用參數,參數使用方法請參見:如何配置並使用參數;「檔案輸入算子+參數」的具體使用範例請參見本文第七章內容。
需要提前配置「伺服器本地資料連結」或「FTP/SFTP資料連結」且需要有該資料連結的使用權限,下拉框中才會出現選項。
檔案類型選擇「Excel」時:
支援的 Excel 檔案後綴名:.xls、.xlsx、.XLS、.XLSX
Excel 需要支援滿足的版本為 97~ 最新版本
4.2.10.3 之前版本讀取方式為:檔案讀取、資料夾讀取;4.2.10.3 及之後版本讀取方式更名為:單檔案讀取、多檔案合併讀取。
1)檔案讀取
讀取單個檔案。
檔案地址:選擇要讀取的檔案;支援輸入參數;若檔案來源是「伺服器本地目錄」,此處填寫的是相對於%FDL%/webroot/WEB-INF/assets/local_files的路徑,例如:/home/ftpuser/test/${time}.xlsx(/home 在 %FDL%/webroot/WEB-INF/assets/local_files路徑下)。
注:在「檔案地址」中,貼上完整檔案地址或者手動輸入檔案地址後,按 Enter 鍵儲存。
檔案來源為「伺服器本地目錄」且讀取單個檔案時,「檔案地址」處支援手動上傳檔案至有權限的 FDL 伺服器本地目錄中。上傳檔案名稱限制:上傳檔案名稱不能包含「 ? * : " < > \ / | 」,不能以空格開頭。上傳檔案大小不能超過 100M 。
2)資料夾讀取
可讀取資料夾中的多個同格式檔案,將檔案資料合併在一起。資料夾中的 CSV 檔案需要分隔符相同;資料夾中的 Excel 檔案不需要欄位名相同,但建議不同檔案中欄位順序相同。
注1:文字類型為 「CSV」、「自訂」時,若需要讀取的資料夾中包含多種格式資料,且僅需要讀取一種檔案類型,則在讀取的時候需要進行檔案篩選,篩選檔案名稱中包含 CSV 或者 Excel 的指定檔案,否則會預設讀取資料夾中的所有類型的檔案 。
注2:檔案輸入算子中讀取資料夾中的檔案時,是併發讀取的,最多併發讀取 20 個檔案。
例如資料夾下有兩個檔案 test1 和 test2 ,若選擇「資料夾讀取」則會將檔案資料合併在一起,如下圖所示:
詳細範例詳情參見:批量掃描檔案同步資料
選取要讀取的資料夾。指定資料夾方式:透過介面點選選擇資料夾、手動輸入資料夾地址(可設定參數,輸入參數後需要手動點選選中該參數)
注:在「資料夾地址」中,貼上完整地址或者手動輸入資料夾地址後,按 Enter 鍵儲存
允許配置篩選條件過濾資料夾下的多個檔案,獲取符合要求的部分檔案進行讀取。可透過「檔案名稱」和「檔案修改時間」來篩選檔案。支援透過參數篩選。
「檔案修改時間」理解範例:比如某資料夾中昨天的表是 A 和 B,今天新增表 C ,更新表 B 中的資料,「檔案篩選」中篩選「檔案修改時間」為今天的表,可篩選出表 C 和表 B(表 B 中的所有資料,非今天更新的資料)。
注1:「檔案修改時間」的精確度僅到分鐘,暫時無法精確到秒級別;如果是新增檔案,修改時間一般是建立檔案時間,使用「檔案修改時間」可以篩選到;但如果新增檔案是其他檔案複製過來的,檔案修改時間與之前檔案保持一致。
注2:4.1.1 及之後版本,產品內條件判斷邏輯進行了統一,每個運算子的說明可參見:條件判斷邏輯說明
4.2.10.3 之前版本,該功能為「sheet名」,支援選擇某一個要讀取的 Sheet 名。為空時讀取第一個 sheet。sheet 名稱支援使用參數。
4.2.10.3 及之後版本,該功能改名為「sheet篩選」,支援:直接選取、自訂條件、所有sheet。
注:Sheet 篩選時,以單個檔案為單位,如果一個檔案裏找不到符合條件的 Sheet,將會報錯。
支援透過名稱選擇工作表,支援多選。為空預設讀取第一個 Sheet
a b
1 2
3 4
c d e
3 4 5
c d e f
3 4 5 6
支援透過 Sheet名稱、Sheet 序號讀取工作表:
支援引用參數
多個名稱以“,”隔開
多個序號以“,”隔開
不可為空
指定 Excel 讀取起始列和讀取結束列,指定 Excel 讀取起始欄和讀取結束欄。
數字框中要求為正整數。
勾選時,將解析到的首列資料作為欄位名。
不勾選時,首列將作為實際資料解析。
1)有兩種獲取方式,說明見下表:
將根據解析結果直接讀取欄位類型
「手動獲取」介面下將展示匯出欄位名稱、匯出欄位類型,支援自訂欄位類型,可設定欄位類型為:varchar、int、long、float、double、date、timestamp。
注:CSV 檔案的情況下,不能選擇 date 和 timestamp 類型。
欄位允許追加,允許刪除追加的欄位,但不允許對已有欄位進行刪除或順序調整。
注:追加的欄位名稱,不允許為空,不能包含空格,不能與其他有效欄位名重複。
追加的欄位如果前 N 列沒有資料,則對應列值為 NULL 。
2)4.2.6.1 及之後版本,兩種方式均支援新增三個內建欄位「fileName(檔案名稱)」、「filePath(檔案路徑)」、「lastModifiedTime(檔案修改時間)」,在配置中可新增三個內建欄位作為匯出欄位。
注:支援修改內建欄位的欄位名,限制 30 字元,不能與其他有效欄位重名。
當配置了內建欄位後,資料預覽和實際運作時都會新增該欄內容。預覽效果如下:
3)若 FTP 獲取檔案以及資料夾的時間(lastModifiedTime)比實際伺服器上的時間晚 8 h 或時間錯誤等情況,需要修改配置檔案,此操作會影響資料夾條件中的時間過濾。
修改 /etc/vsftpd/vsftpd.conf 配置檔案,在最下面一列增加:
use_localtime=YES
重啟 FTP
service vsftpd restart
若檔案類型選擇「CSV」檔案,需配置以下內容:
lie注:此處為廣義的 CSV ,指的是包括所有使用逗號、列表符、分號、豎線等任何符號作為分隔符的純文字表格檔案。
檔案來源、讀取方式、首列為欄位名、匯出欄位介紹請參見本文 3.1 節內容,其餘設定項說明見下表:
檔案類型選擇 CSV 時,支援讀取 csv 檔案類型。
例如:支援的檔案後綴名:csv、CSV、txt、TXT、tsv、log、dt(csv 和 xml 混合格式)等。
當使用者選擇「檔案讀取」方式時,新增該選項。說明如下:
不區分大小寫;
根據使用者輸入「檔案後綴」讀取檔案地址中的該類型檔案,跨越路徑下非該格式檔案;
支援寫多種格式,以逗號為分隔符;支援讀取類 CSV 檔案,例如:txt/tsv/log
/dt(csv和xml混合格式)等
4.2.6.1 及之後版本,取消必填校驗
根據指定的分隔符,分隔資料為多欄。配置的分隔符需要與檔案中實際的分隔符保持一致才可正常解析。
分隔符可選擇:英文逗號,、欄表符\t、英文分號;、管道符|、空格、ASCII字元、自訂
可以手動輸入自訂分隔符,可以輸入多個字元作為分隔符,可以是中文字元;
可以手動輸入十進制的 ASCII 編碼,指定 ASCII 字元作為特殊的欄分隔符,支援的十進制ASCII編碼為0~32;
文字限定符、欄分隔符、列分隔符彼此不可重複
支援指定 CSV 中的列分隔符:
CR+LF:在 Windows 系統中使用;
LF:在 Unix、Linux 等系統中使用;
CR:在早期的 Mac OS 系統中使用;
用於標識資料值的開始和結束,以避免資料中包含的特殊字元幹擾 CSV 檔案的解析。
可選擇:雙引號、單引號、ASCII 字元(支援的十進制ASCII編碼為0~32);
指定 CSV 檔案編碼
編碼支援選擇 GBK、BIG5、ISO-8859-1、UTF-8、UTF-16、EUC_JP、EUC_KR、CP850、GB2312
注:該設定項應該選擇正確的檔案編碼格式,否則,將會導致讀取資料亂碼
CSV 檔案支援從第 N 列開始取數:
必填。預設值為 1,不允許輸入 1 以下的數字;
實際讀取時,將從配置的起始列開始進行讀取;
多檔案讀取的情況下,對於每個檔案,此配置都將生效;
同時指定「起始列為欄位名」時,將以讀取起始列開始,取該列作為欄位名列。
支援讀取 xml、json 等檔案類型。
預設獲取為文字資料,一個檔案一列資料,欄名預設為「column」,解析內容功能由後續XML解析、JSON解析等算子實現。如下圖所示:
檔案來源、讀取方式、檔案地址請參見本文 3.1 節。
讀取方式選擇「檔案讀取」時,新增該選項:
不區分大小寫。
支援寫多種格式,以逗號為分隔符。
檔案後綴不能重複。
編碼可選擇 GBK、BIG5、ISO-8859-1、UTF-8、UTF-16、EUC_JP、EUC_KR、CP850、GB2312。如下圖所示:
「資料預覽」介面如下圖所示:
說明如下:
預覽資料量預設最多20列;使用前5000列資料中出現的欄位與首列欄數(如果指定了首列為欄位名稱)取並集,作為預覽時展示的欄位,且僅取數取樣前5000筆資料,但請不要擔心,在匯出資料時為全量匯出。
如果首列欄位為合併儲存格的情況,將合併儲存格進行拆分後,以「欄位名稱+數字」的方式對拆分後的欄位命名,如三個儲存格合併後的首列儲存格為「姓名」,則命名為姓名、姓名1、姓名2..:
如果CSV首列欄位有重名情況,以「欄位名稱+數字」的方式對重複欄位命名,如重複欄位為姓名,則重複欄位命名為姓名1、姓名2...。
未勾選首列包含欄位名時,欄位名稱以「column+數字」的方式對解析出的欄位依次命名,如column、column1、column2...。
FDL 工程的定時任務中使用了「檔案輸入」算子,其中檔案類型選擇 CSV,讀取方式為資料夾讀取:
若設定了檔案篩選條件,升級到 4.1.4 及之後版本後,filename 包含.txt、.TXT、.csv、.CSV,與升級前配置的篩選條件為且關係。
若沒有設定檔案篩選條件,升級到 4.1.4 及之後版本後,filename 預設包含.txt、.TXT、.csv、.CSV。
選擇資料夾時,將滿足篩選條件,按檔案名稱首字母排序的第一個檔案作為範本。
如果此格式不符的檔案,欄位個數與類型與範本檔案相同,則不會報錯,將視為正確的檔案讀取。
如果此格式不符的檔案,欄位個數或類型與範本檔案不同,則此檔案報錯,算子執行報錯,並列印日誌記錄當前報錯時讀取的檔案名稱
讀取時前N列會被讀取為NULL,有資料的列正常讀取
儲存格式與讀取後欄位的關係說明:
數值
日期或時間戳
只有年月日解析成日期、含有日期時間解析成時間戳。
1)CSV欄位類型問題
CSV讀取後,匯出只有字串和數字兩種類型,數字需要保證不丟精度。對於時間類型,如2022-11-10類型的時間,解析為字串;時間戳類型的時間解析成數字。
2)合併儲存格讀取問題
對於合併的儲存格,拆分儲存格讀取,複製值到每個拆分後的儲存格進行讀取。
3)欄位為空的情況
如果標題欄位存在空值,則將空值以「column+數字」的方式補充。
如果數字欄位存在空值,填NULL
4)不支援 Excel 的多選Sheet讀取。
5)不支援檔案名稱通配符。
6)不支援讀取設密碼的Excel檔案。
場景:
批量讀取同格式檔案,檔案新增頻率較高
以新增檔案的方式新增資料,不更新已有檔案資料
判斷新增檔案方式:
方式一:根據檔案名稱:檔案名稱中包含檔案新增時間,例如2023-05-29庫存資料
方式二:根據檔案新增時間
循環多次讀取Windows環境檔案同步資料
循環多次讀取Linux環境檔案同步資料
(讀取檔案時,「檔案地址」設定項中使用參數)
現需要將已經下發完成(生成 .ok 檔案)的 csv 檔案按照 .del 記錄的方式進行讀取入庫,並且讀取檔案後,需要記錄已經讀取完成的檔案,以便在任務異常重啟時避免重複寫入
獲取目錄下符合條件的檔案,按寫入方式讀取入庫並記錄狀態
使用者需要將部分壓縮包檔案傳輸到另外一個位置,並進行解壓,希望已經傳輸成功的檔案,下次任務運作時不會再重複傳輸
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙