{"id":50878349,"url":"https://github.com/dennisk28/SmartETL","last_synced_at":"2026-07-03T02:01:15.545Z","repository":{"id":28113876,"uuid":"31612634","full_name":"dennisk28/SmartETL","owner":"dennisk28","description":"A light weight ETL engine and smart transformation framework","archived":false,"fork":false,"pushed_at":"2015-04-20T16:57:58.000Z","size":1075,"stargazers_count":47,"open_issues_count":1,"forks_count":23,"subscribers_count":19,"default_branch":"master","last_synced_at":"2023-07-31T22:05:58.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dennisk28.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-03T17:55:03.000Z","updated_at":"2023-07-31T22:05:58.666Z","dependencies_parsed_at":"2022-07-24T15:32:10.963Z","dependency_job_id":null,"html_url":"https://github.com/dennisk28/SmartETL","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/dennisk28/SmartETL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dennisk28%2FSmartETL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dennisk28%2FSmartETL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dennisk28%2FSmartETL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dennisk28%2FSmartETL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dennisk28","download_url":"https://codeload.github.com/dennisk28/SmartETL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dennisk28%2FSmartETL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35069183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-15T12:00:25.788Z","updated_at":"2026-07-03T02:01:15.511Z","avatar_url":"https://github.com/dennisk28.png","language":"Java","funding_links":[],"categories":["大数据"],"sub_categories":["微服务框架"],"readme":"\n# SmartETL\nA light weight ETL engine and smart transformation framework\n\nBuild:\n\nFrom root directory, run: maven install\n\nRun the demo:\n1. Modify distribution/target/SmartETL-0.0.1-incredible/examples/samplejob.xml to have correct path to the sample input files and output location.\n2. Go to distribution/target directory, from command line, run: bin/run.bat\n\nDebug:\n\n1. Import the projects (libBase, libFormula, smartETL) into Eclipse\n2. Run configuration\n\nMain class: org.f3tools.incredible.smartETL.JobRunner\nArgument: path to the samplejob.xml, for example: C:\\Work\\workspace\\incredible\\examples\\samplejob.xml\n\nNice features:\n\n1. You can skip predefined amount of top and bottom lines when reading a csv file\n2. You can use lookup as function in formulas\n3. You can setup a filter for input files and smart trans step\n4. Smart trans step allows you define mapping rules using a DSL (domain specific language)\n5. You can filter out a row in formula\n6. All kind of functions such as string manipulation, date time manipulation ... are supported in the DSL\n7. You can define variables in smart trans step. you can use both input data, variables, and output data define output mapping rules\n\n# Log\n\n2015/04/16\n\nFixed a bug now variables are case insensitive\n\n2015/3/30\n\n1. Added if, then, else to DSL\n2. Renamed function if to iif\n3. Support And, Or, Not logical operator\n4. Fixed a bug in PrefixTerm and PostfixTerm which didn't have initialize methods\n5. Removed square bracket for variables\n6. Changed function delimiter from ; to ,\n\n2015/3/21\n\n1. Formula tag is supported now\n2. Two new tools are created. GenJobDef can generate job definition xml from an excel spreasheet. GrammarCheck can find out grammar errors in Excel mapping formulas.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdennisk28%2FSmartETL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdennisk28%2FSmartETL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdennisk28%2FSmartETL/lists"}