The results are great, but more design details are needed to show feasibility
hadoop.wiki <[email protected]> 于2025年1月13日周一 15:20写道: > It looks very 👍, At present, Seattunnel web independently manages this > information, and how to use it on Seattunnel web also needs to be > considered. > > > 2025年1月13日 下午3:11,Jia Fan <[email protected]> 写道: > > > > The final result looks good, any detailed design? I wonder how to > > implement it? We currently have inconsistent ways and locations for > > different connectors to obtain credentials, and I don't know how to > > accomplish this functionality in a way that is minimally invasive to > > existing code. > > > > Guangdong Liu <[email protected]> 于2025年1月13日周一 11:58写道: > >> > >> Hey SeaTunnel Community, > >> > >> Currently, the catalog information for connectors is directly > configured in > >> the configuration files. This approach has the following issues: > >> > >> 1. **Information Leakage**: Because these configurations are stored in > >> plain text, they can easily lead to access permission leaks, posing > >> security risks. > >> 2. **Difficult to Modify**: When database access information changes, > all > >> related task configurations need to be updated individually, which is > >> time-consuming and error-prone. > >> > >> To address the above issues, we propose introducing a unified catalog > >> management layer to centralize and manage these configurations, > enhancing > >> both security and maintainability. > >> > >> **Previous Configuration:** > >> > >> ```yaml > >> env { > >> job.mode = "BATCH" > >> } > >> > >> source { > >> Jdbc { > >> url = > >> > "jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true" > >> driver = "com.mysql.cj.jdbc.Driver" > >> connection_check_timeout_sec = 100 > >> user = "root" > >> password = "123456" > >> query = "select * from type_bin limit 16" > >> } > >> } > >> > >> transform { > >> } > >> > >> sink { > >> jdbc { > >> url = > >> > "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true" > >> driver = "com.mysql.cj.jdbc.Driver" > >> user = "root" > >> password = "123456" > >> query = "insert into test_table(name,age) values(?,?)" > >> } > >> } > >> ``` > >> > >> **Configuration Based on a Unified Catalog Layer (e.g., Apache > Gravitino):** > >> > >> ```yaml > >> env { > >> job.mode = "BATCH" > >> catalog.kind = 'gravitino' > >> gravitino.uri=http://gravitino-server-host:8090 > >> gravitino.metalake=test > >> } > >> > >> source { > >> Jdbc { > >> catalog="mysql_test" > >> connection_check_timeout_sec = 100 > >> query = "select * from type_bin limit 16" > >> } > >> } > >> > >> transform { > >> } > >> > >> sink { > >> jdbc { > >> catalog="mysql_test" > >> query = "insert into test_table(name,age) values(?,?)" > >> } > >> } > >> ``` > >> > >> By introducing a catalog management layer (e.g., Apache Gravitino), we > can > >> achieve the following improvements: > >> > >> - **Enhanced Security**: Sensitive configuration information is managed > by > >> the unified catalog layer and is no longer exposed in configuration > files. > >> - **Ease of Maintenance**: When database access information changes, > >> updates can be made in the catalog layer without modifying individual > task > >> configurations. > >> > >> Please evaluate whether this solution fits our current requirements. If > you > >> have any questions, feel free to reach out. > >> > >> > >> -- > >> > >> Best Regards > >> > >> ------------ > >> > >> Liugddx > >> [email protected] > > > >
