In addtion to shim's idea, that feature was implemented when we didn't support to change interpreter name. Now, that feature is out-date and I suggest to reemove that feature now. Now, Zeppelin supports to make several jdbc interpreter at the same time. I suggest to ise this way.
On Wed, 24 May 2017 at 05:39 Hyung Sung Shim <hss...@nflabs.com> wrote: > I agree with your idea and > +1 to create one > interpreter setting for each database. > 2017년 5월 24일 (수) 오후 3:45, Jeff Zhang <zjf...@gmail.com>님이 작성: > > > The current JdbcInterpreter implementation seems too generic for me. > > Two main reasons > > > > 1. The logic of executing sql in JdbcInterpeter is a little weird. Here's > > is what jdbc interpreter would do for "%jdbc(mysql) show tables" > > The script part is actually `(mysql) show tables` rather than `show > > tables`, jdbc interpreter first parse it to get property key `mysql` then > > execute sql `show tables` for mysql. This is kind weird to do parsing in > > jdbc interpreter. I would use '%jdbc(mysql)' as interpreter name part, > > `mysql` could be some kind of interpreter property, but never to make > > interpreter to do parsing again. 'show tables' should be the sql script > > part which is sent to jdbc interpreter. Doing specific parsing in > > interpreter is not a good practise IMHO. This also make the parsing > > repl/script logic a little weird in Paragraph.java > > > > 2. All the database would share the same interpreter setting. such as > > keytab, principal, common.max_count. And it just depends on the > propertyKey > > to decide to connect which database. I would say it is better to create > one > > interpreter setting for each database rather than mixing them together, > > this would cause JdbcInterpreter very fragile, as changes for one > database > > may affect other databases. I am not sure whether this is because > creating > > new interpreter setting is not available when the jdbc interpreter is > > implemented. if user create interpreter setting for each database, then > he > > doesn't need to specify `(mysql)` as point 1. > > > > Welcome any comments and thoughts on this. > > > -- 이종열, Jongyoul Lee, 李宗烈 http://madeng.net