asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yingyi Bu <buyin...@gmail.com>
Subject Re: Parse GeoJSON data into a record in AsterixDB
Date Wed, 21 Jun 2017 18:40:04 GMT
>> type appears to be keyword
`type` would make it valid.

>> We can't use the defining type within the same type recursively (ie.
GeometryType within GeometryType)

We don't support recursive type definition.

>> The type object cannot be resolved

 We don't have a builtin name for a completely open type, but you can
define one.


What you can do is:

CREATE TYPE AnyObject AS {};

CREATE TYPE GeometryType AS {
         `type`: string,
         geometry: SomeType;
         properties: AnyObject
}


Best,
Yingyi

On Wed, Jun 21, 2017 at 6:33 AM, Mike Carey <dtabass@gmail.com> 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#Deri
> vedTypesObject
>
> Thank you
> Yours sincerely,
> Riyafa
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message