asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Till Westmann" <ti...@apache.org>
Subject Re: Parse GeoJSON data into a record in AsterixDB
Date Wed, 21 Jun 2017 16:19:42 GMT
Glancing at RFC 7946 [1] it seems that arbitrary nesting is not allowed.
If I glanced correctly, there are
1) geometry objects and
2) feature objects that can contain a geometry and
3) feature collections that can contain multiple features.
So I believe that recursion should not be a problem.
However, I think that there are other constructs in the structure of a
geometry object that are not expressible in ADM types today - so I
think that we’ll need to work with (at least partially) open types.

Cheers,
Till

[1] https://tools.ietf.org/html/rfc7946

On 21 Jun 2017, at 15:33, Mike Carey wrote:

> One approach would be to be silent about properties - and then it 
> could be there anyway - however, that wouldn't allow you to state the 
> requirement (?) that it must be called properties and/or that it must 
> be an object (not a scalar).  That could work for now, perhaps?  We 
> need to have an "any record type" type name - we've noted a desire for 
> that - unfortunately we don't have one I don't think.  I believe the 
> concept is there inside the code, in the type-related areas, but we 
> don't have a keyword like name for it.  (@Yingyi - comments?)  And we 
> do also have a restriction (at the type level) that precludes 
> recursion (regular or mutual) in type definitions; we probably need to 
> do something about that someday as well.
>
> In the meantime, these things could be handled (weakly) by documenting 
> what's expected/allowed in this setting.
>
> Cheers,
>
> Mike
>
> PS - I wonder if JSON Schema has the expressiveness for this?
>
>
> On 6/21/17 2:26 AM, Riyafa Abdul Hameed wrote:
>> Hi,
>>
>> I would like to parse the following or any GeoJSON type[1] to a 
>> record in AsterixDB:
>> {
>>    "type":"Feature",
>>    "geometry":{
>>       "type":"Point",
>>       "coordinates":[
>>          -118.40,
>>          33.93
>>       ]
>>    },
>>    "properties":{
>>       "code":"LAX",
>>       "elevation":38
>>    }
>> }
>>
>> The value of properties is optional and is a variable that is it can 
>> be any type of object. What is the most suitable datatype to use to 
>> represent properties in this case?
>> Is something like the following possible?
>>
>> CREATE TYPE GeometryType AS {
>>      type: string,
>>      geometry: GeometryType,
>>      properties: object
>> };
>>
>> I came up with the above because there's a derived type called 
>> objects[2] in AsterixDB. The above doesn't work because of the 
>> following reasons:
>>
>>   * type appears to be keyword
>>   * We can't use the defining type within the same type recursively
>>     (ie. GeometryType within GeometryType)
>>   * The type object cannot be resolved
>>
>> Any suggestions on how a GeoJSON can be parsed into AsterixDB?
>>
>> [1] https://tools.ietf.org/html/rfc7946
>> [2] 
>> https://ci.apache.org/projects/asterixdb/datamodel.html#DerivedTypesObject
>>
>> Thank you
>> Yours sincerely,
>> Riyafa
>>

Mime
View raw message