You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@avro.apache.org by Doug Cutting <cu...@apache.org> on 2011/01/10 20:27:10 UTC
Re: Some questions for Avro
On 12/07/2010 03:06 AM, Xingen Wang wrote:
> I just want my rpc framework be able to transport any objects through
> network without any modification in the existing schema definition.
>
> Can I achieve this objective with Avro
Perhaps. A way to do this is to define a general schema. If, for
example, your objects were named records whose named fields could be
null, boolean, long, double, string or a nested record value, then your
schema might be something like:
{"name":"data", "type":"record", "fields":[
{"name":"value", "type":
["null",
"boolean",
"long",
"double"
"string",
{"name":"record", "type":"record", "fields":[
{"name":"fields", "type":
{"type":"array", "items":
{"name":"field", "type":"record", "fields":[
{"name":"name", "type":"string"},
{"name":"value", "type":"data"}
]}
}
}]}
]}
Note that this is almost a schema for the JSON data model.
Doug
> On Tue, Dec 7, 2010 at 9:12 AM, Jeff Hammerbacher <hammer@cloudera.com
> <ma...@cloudera.com>> wrote:
>
> Hey Xingen,
>
> 1. Does the json schema support extends? e.g. First, I define an
> general-purpose json schema named "Object", and in other json
> schema, try to extends this "Object".
>
>
> Avro IDL supports includes:
> http://avro.apache.org/docs/current/idl.html#imports. It does not
> support extensions, to the best of my knowledge. Perhaps you could
> file a feature request at https://issues.apache.org/jira/browse/AVRO?
>
> 2. In the primitive types, I can't find one type that can
> represent any objects. I tried "record", but you have to specify
> "name" and "fields" for it.
>
>
> You could make a union of all of the primitive types? I'm not sure
> exactly what you're trying to accomplish with this question though.
>
> Thanks,
> Jeff
>
>
>
>
> --
> Xingen Wang
Re: Some questions for Avro
Posted by Xingen Wang <ne...@gmail.com>.
Thanks, Doug,
I will try it in my project.
On Tue, Jan 11, 2011 at 3:27 AM, Doug Cutting <cu...@apache.org> wrote:
> On 12/07/2010 03:06 AM, Xingen Wang wrote:
>
>> I just want my rpc framework be able to transport any objects through
>> network without any modification in the existing schema definition.
>>
>> Can I achieve this objective with Avro
>>
>
> Perhaps. A way to do this is to define a general schema. If, for example,
> your objects were named records whose named fields could be null, boolean,
> long, double, string or a nested record value, then your schema might be
> something like:
>
> {"name":"data", "type":"record", "fields":[
> {"name":"value", "type":
> ["null",
> "boolean",
> "long",
> "double"
> "string",
> {"name":"record", "type":"record", "fields":[
> {"name":"fields", "type":
> {"type":"array", "items":
> {"name":"field", "type":"record", "fields":[
> {"name":"name", "type":"string"},
> {"name":"value", "type":"data"}
> ]}
> }
> }]}
> ]}
>
> Note that this is almost a schema for the JSON data model.
>
> Doug
>
> On Tue, Dec 7, 2010 at 9:12 AM, Jeff Hammerbacher <hammer@cloudera.com
>> <ma...@cloudera.com>> wrote:
>>
>> Hey Xingen,
>>
>> 1. Does the json schema support extends? e.g. First, I define an
>> general-purpose json schema named "Object", and in other json
>> schema, try to extends this "Object".
>>
>>
>> Avro IDL supports includes:
>> http://avro.apache.org/docs/current/idl.html#imports. It does not
>> support extensions, to the best of my knowledge. Perhaps you could
>> file a feature request at https://issues.apache.org/jira/browse/AVRO?
>>
>> 2. In the primitive types, I can't find one type that can
>> represent any objects. I tried "record", but you have to specify
>> "name" and "fields" for it.
>>
>>
>> You could make a union of all of the primitive types? I'm not sure
>> exactly what you're trying to accomplish with this question though.
>>
>> Thanks,
>> Jeff
>>
>>
>>
>>
>> --
>> Xingen Wang
>>
>
--
Xingen Wang