Hi Malith, Nice work. Using this new feature we can implement the requirements I mentioned in the Architecture mail titled "Making BAM more useful platform with well defined Class Analyzers / UDFs". WDYT?
* Maninda Edirisooriya* Software Engineer *WSO2, Inc. *lean.enterprise.middleware. *Blog* : http://maninda.blogspot.com/ *Phone* : +94 777603226 On Tue, Aug 13, 2013 at 8:24 PM, Malith Dhanushka <[email protected]> wrote: > 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 > >
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
