Hi all, I have modified the implementation according to above description and following is the modified version,
- analyzer-config.xml contains the mapping details. ex : - analyzer-config.xml *<analyzerConfig xmlns="http://wso2.org/carbon/analytics">* * <analyzers>* * <analyzer>* * <name>foo</name>* * <class>org.wso2.carbon.analytics.hive.extension.builtin.FooAnalyzer</class>* * <parameters>bar,bat1,*</parameters>* * </analyzer>* * </analyzers>* *</analyzerConfig>* parameter description, *name *- alias name which maps to the class analyzer *class* - class analyzer *parameters* - parameters that are accepted by class analyzer - This can be utilized in hive script as follows, syntax *analyzer foo(bar="value",bar1="value1",*)*; Currently there is one built-in analyzer which is resolvePath analyzer and more will be added by considering other common use cases. Thanks, Malith On Mon, Aug 5, 2013 at 11:36 AM, Anjana Fernando <[email protected]> wrote: > On Mon, Aug 5, 2013 at 11:30 AM, Maninda Edirisooriya <[email protected]>wrote: > >> On Mon, Aug 5, 2013 at 7:58 AM, Malith Dhanushka <[email protected]> wrote: >> >>> Hi all, >>> >>> Implementation of the above suggested approach is in the final stage. >>> But I had a minor clarification of the implementation with Anjana. There we >>> came across following drawbacks of the implemented approach, >>> >>> - Annotation should not be coupled with a class analyzer, rather it >>> should be a run time property injector to hive scripts. >>> >> Then won't the annotation feature will be bounded to Hive language? If so >> we will not be able to integrate more languages to annotations in future. >> > > It won't be .. the current implementation happens to only support Hive at > the moment, since that's what we have now. Not coupling with class analyzer > itself is a sign of that, because a class analyzer is anyway a Hive > functionality we have. > > Cheers, > Anjana. > > >> >>> - Abstract Annotation class adds unnecessary complications for user to >>> write a custom annotation. >>> >>> So by considering above information I am going to modify the current >>> implementation by adhering to those factors. If there any other concerns >>> and suggestions please feel free to add. >>> >>> Thanks, >>> Malith >>> >>> >>> On Wed, Jul 10, 2013 at 1:26 PM, Malith Dhanushka <[email protected]>wrote: >>> >>>> Hi Maninda, >>>> >>>> On Wed, Jul 10, 2013 at 11:37 AM, Maninda Edirisooriya < >>>> [email protected]> wrote: >>>> >>>>> This is nice. Can we use these annotations to unify the languages, >>>>> Hive and Siddhi? If we can use this annotation framework as a platform to >>>>> support different languages it will be very useful when it comes to >>>>> integrating other Hadoop related languages like Mahout and Pig. That means >>>>> we can separate each language relates script using annotations. This will >>>>> solve the problem of unifying all the languages into a single language. >>>>> >>>> >>>> Interesting suggestion and yes ,this is gettable via annotations. But >>>> the only limitation is that the current script implementation is only >>>> available for hive. So in order to achieve language unification via >>>> annotations firstly we need to have a unified script implementation for >>>> each underlying engine (ie- Siddhi, Mahout, pig). >>>> >>>>> >>>>> And also using this annotation framework we can create a generic >>>>> Process Flow model on the data. For example we can execute several Hive >>>>> scripts in parallel using a annotation block. And a barrier can be >>>>> introduced if all the parallel scripts should be finished before we move >>>>> onto the next script and so on. >>>>> >>>> >>>> Yes, this can be added as a built in annotation. >>>> >>>> >>>>> >>>>> Other than that we can provide a default set of class analysers as we >>>>> have discussed in a previous mail. The value of annotations is that we can >>>>> provide the available set of class analysers out of the box. Any idea >>>>> about >>>>> the syntax? >>>>> >>>> >>>> Each annotation is associated with a particular class analyzer, which >>>> process the given parameters via the annotation. So we can wrap that >>>> default set of class analyzers and expose them as set of built in >>>> annotations and can stick to the same syntax as previous, >>>> >>>> @script.foo(bar="value", bar1="value1",*) >>>> >>>> >>>>> * >>>>> Maninda Edirisooriya* >>>>> Software Engineer >>>>> *WSO2, Inc. >>>>> *lean.enterprise.middleware. >>>>> >>>>> *Blog* : http://maninda.blogspot.com/ >>>>> *Phone* : +94 777603226 >>>>> >>>>> >>>>> On Tue, Jul 9, 2013 at 11:23 AM, Malith Dhanushka <[email protected]>wrote: >>>>> >>>>>> Hi all, >>>>>> >>>>>> I have started implementing the $Subject. The idea of having an >>>>>> annotation facility is to carryout some pre-processing of Hive queries >>>>>> before they are being passed to the Hive engine. Currently we already >>>>>> have >>>>>> a "class analyzer" which can be used execute some custom logic as a part >>>>>> of >>>>>> a Hive script. But the main use case of annotations is to inject run-time >>>>>> properties to Hive execution context before the actual queries are >>>>>> carried >>>>>> out by Hive. The annotation facility would be building upon this by >>>>>> having >>>>>> set of such common analyzers which can manipulate the Hive queries or >>>>>> Hive >>>>>> execution context which it is passed to Hive query engine. >>>>>> >>>>>> Annotation Syntax, >>>>>> >>>>>> *@script.foo(bar="value", bar1="value1",*)* >>>>>> >>>>>> >>>>>> Annotation scheme will be externalized by giving *abstract >>>>>> implementation of annotation* and *annotation-config.xml* file to >>>>>> provide the annotation configuration which allows third party annotations >>>>>> to be included to the system. >>>>>> >>>>>> *annotation-config.xml* >>>>>> >>>>>> <annotation> >>>>>> <name>foo</name> >>>>>> <class>org.wso2.carbon.analytics.hive.extension.annotation.foo</class> >>>>>> <analyzer>org.wso2.carbon.analytics.hive.extension.foo</analyzer> >>>>>> </annotation> >>>>>> >>>>>> <annotation> >>>>>> ................................ >>>>>> </annotation> >>>>>> >>>>>> >>>>>> Potential use case for this in incremental data processing where any >>>>>> query associated with "*@script.incremental(foo="value1", >>>>>> bar="value2",*)*" would flag and setup the properties those are >>>>>> required to present in order for that particular query to be executed in >>>>>> an >>>>>> incremental manner.There can be many other useful additions as well. >>>>>> >>>>>> Any suggestions, thoughts are welcome. >>>>>> >>>>>> -- >>>>>> Malith Dhanushka >>>>>> >>>>>> Engineer - Data Technologies >>>>>> *WSO2, Inc. : wso2.com* >>>>>> >>>>>> *Mobile* : +94 716 506 693 >>>>>> >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> [email protected] >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> [email protected] >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>> >>>> >>>> -- >>>> Malith Dhanushka >>>> >>>> Engineer - Data Technologies >>>> *WSO2, Inc. : wso2.com* >>>> >>>> *Mobile* : +94 716 506 693 >>>> >>> >>> >>> >>> -- >>> Malith Dhanushka >>> >>> Engineer - Data Technologies >>> *WSO2, Inc. : wso2.com* >>> >>> *Mobile* : +94 716 506 693 >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> _______________________________________________ >> Architecture mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > > -- > *Anjana Fernando* > Technical Lead > WSO2 Inc. | http://wso2.com > lean . enterprise . middleware > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- Malith Dhanushka Engineer - Data Technologies *WSO2, Inc. : wso2.com* *Mobile* : +94 716 506 693
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
