在google code上開了一個java版的ETL小工具project:jmyetl
以前,曾經利用各資料庫底層C-API作wrapping,實現了若干異構資料庫間資料匯入匯出的功能,但是程式碼複雜,不便開源。
下午,用java寫了一個簡單的資料抽取程式,實現MySQL資料庫到Sybase ASE的資料移植。將它開源,放到:http://code.google.com/p/jmyetl/ 上邊了。本來取名做myetl,結果已經有人在sf.net上申請了,後來在其前加上一個j。以示java版本。
有興趣的可以試用一下。
目前,可以是某使用者的全庫資料匯入,也可以選擇性的匯入若干張表。
因為剛實現一個初步框子,所以定為0.9.0版。
打算以後有空再寫些別的庫間ETL,最後再重構,組合。
使用方法:
當前目錄下邊有一個xml配置檔案etl_config.xml,其格式如下:
直接執行myEtl.bat即可實現匯入。如果去掉<table>那一塊的註釋,則全庫匯入。
注意字符集選項,如果沒有這個配置,很容易出現亂碼。
目前的限制條件是:
不要使用資料庫超級使用者來配置連線,因為目前程式裡邊沒有對系統表進行過濾。
後期計劃:
Sybase ASE --> Sybase ASE
Sybase ASA --> Sybase ASE
Sybase ASE --> Sybase ASA
Oracle --> Sybase ASE
DB2 --> Sybase ASE
SQL Server --> Sybase ASE
逆向匯入,以後有時間再做。
已有功能:
1. 能保持表結構幾乎一致,型別相容
2. 日誌檔案etl.log裡會記錄匯入的詳細過程以及中間可能出現的出錯資訊
3. 目標表,會建立與源表一樣的主鍵結構
4. 目標表會建立與源表一致的identity資訊
5. 通過字符集一致性配置,會保持源表中的字符集到目標表,不致亂碼。
待改進功能:(下述功能,是細緻一些的功能,適用目的不同,如果只是簡單的抽取資料,則不需要)
1. 新增與源表一致的foreign key constraints (這個稍微有點複雜,會增加匯入時間)
2. 新增與源表一致的index功能,即附加建立的索引也在目標表上體現出來
其實,以前用C++ wrapper實現的原理與java版本比較接近,相比JDBC而言,它能操縱更多底層的API,獲取更豐富的資訊,只是程式碼量可能比較大。
相關文章
- Xcode一個project生成多個AppXCodeProjectAPP
- 開發了一個Java庫的Google Bard API,可以自動化與AI對話了JavaGoAPIAI
- Java關於IO的一個小工具Java
- 一個在 iOS 裝置螢幕上實時列印 Log 的小工具iOS
- http://code.google.com/hosting/moved?project=goclipseHTTPGoProject
- 開源一個製作小工具的小工具,順便求個 star
- 上週,一個國產 API 開源專案在 ProductHunt 殺瘋了...API
- 訪問github太慢?我寫了一個開源小工具一鍵變快Github
- 用go開發了一個實時檢視mysql資料字典的小工具GoMySql
- 整理js開發中的實用小工具(一):做一個整合儲存的小工具JS
- 零程式碼基礎在 Google 表格上建立一個機器人Go機器人
- Google提供了一個Javascript編譯器GoJavaScript編譯
- 用 actix-Web 2.0-α 寫了一個小工具Web
- Google Protobuf 使用 Java 版GoJava
- 我為 VS Code 開發了一個 Deno 外掛
- 黃了。Google中國版搜尋Go
- 介紹兩個Ubuntu上的桌面小工具Ubuntu
- 開源了一個 JavaScript 版敏感詞過濾庫JavaScript
- Code Project精彩分享Project
- Code Project精彩系列Project
- 在Google管理一個軟體團隊Go
- 谷歌在Google IO上宣佈了突破性AI技術谷歌GoAI
- 介紹一個開源的線上管理SQLServer的小工具--SQLEntManSQLServer
- Google在ICLR 2017上展示了哪些機器學習領域的研究成果?GoICLR機器學習
- 一個好用的Visual Studio Code擴充套件 - Live Server,適用於前端小工具開發套件Server前端
- 小弟請教一個在英國的project的問題 請大俠們指教Project
- 在 Google Cloud 上輕鬆部署開放大語言模型GoCloud模型
- 使用的runtime的一個小工具
- Xcode:在Mac上打造卓越的開發體驗XCodeMac
- Language Server for Java™ 1.0 在VS Code上正式釋出!ServerJava
- google圖書搜尋上線了~~Go
- 三個開發中常用的小工具
- 這個大學在Github開源了計算機課程,看完在家上個 985Github計算機
- Google回來了!誰在期待?誰在恐慌?Go
- 第一個spark應用開發詳解(java版)SparkJava
- 一個統計原始碼的小工具原始碼
- RestCloud ETL 社群版背後的故事RESTCloud
- 寫了一個json小工具,希望大家體驗(Mac平臺)JSONMac