[ https://issues.apache.org/jira/browse/ASTERIXDB-2627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Till Westmann updated ASTERIXDB-2627: ------------------------------------- Fix Version/s: 0.9.8 (was: 0.9.7) > internal error during LOAD (found by Nick) > ------------------------------------------ > > Key: ASTERIXDB-2627 > URL: https://issues.apache.org/jira/browse/ASTERIXDB-2627 > Project: Apache AsterixDB > Issue Type: Bug > Components: *DB - AsterixDB, FAIL - Failure handling/reporting, ING > - Ingestion, RT - Runtime > Affects Versions: 0.9.4.1, 0.9.5 > Reporter: Michael J. Carey > Assignee: Ian Maxon > Priority: Major > Fix For: 0.9.8 > > Attachments: > MASTER-personicle-espresso-schema-configuration-script.sqlpp, logs.zip, > sample-event-dump.jsonl > > > *RUN THIS:* > USE Personicle; > //dropping and recreating since AsterixDB requires a virgin > DROP DATASET events IF EXISTS; > CREATE DATASET events(EventType) PRIMARY KEY eventId AUTOGENERATED; > LOAD DATASET events USING localfs > (("path"=":///Users/macandcheese/Desktop/Personicle/old-personicle-parser/sample-event-dump.jsonl"),("format"="adm")); > *BUT FIRST RUN THIS (ALSO ATTACHED) TO SET THINGS UP:* > --To begin we’ll go ahead and delete any existing dataverse named Personicle > --this ensures we’re writing into an empty dataverse (note ALL data in the > --dataverse will be deleted, so be careful). This is included so that this > --code can be re-run without causing naming conflicts, but is not required > --to create a dataverse. > DROP DATAVERSE Personicle IF EXISTS; > --Now that we have a clean slate let’s create our dataverse and call it > --Personicle, though the name is arbitrary. > CREATE DATAVERSE Personicle; > --Sets the current working dataverse for whatever SQL++ statements follow it. > --This is akin to USE in SQL. > USE Personicle; > --The question mark represents an optional field which may or may not be > present. > --I’ve also specified some uuid types which I’ll later use for some > auto-generated > --primary keys. Finally, ADM supports types within types, so you can use > custom > --types for the fields. I’m not going to delve too deep into this, because I > think the > --documentation explains it sufficiently more or less. Here are a couple > links to > --get you started: > --https://ci.apache.org/projects/asterixdb/datamodel.html > --https://ci.apache.org/projects/asterixdb/sqlpp/primer-sqlpp.html > CREATE TYPE AddressType AS OPEN { > category: string?, > address: string, > city: string, > state: string, > postalCode: string > }; > CREATE TYPE PhoneDetailType AS OPEN { > category: string?, > phone: string > }; > CREATE TYPE EmailDetailType AS OPEN { > category: string?, > email: string > }; > CREATE TYPE UserType AS OPEN { > --primary key uuid for user > userId: uuid, > name: string?, > dateOfBirth: date?, > addresses: [AddressType]?, > phones: [PhoneDetailType]?, > emails: [EmailDetailType]? > }; > CREATE TYPE ObservationType AS OPEN { > observationId: uuid, --primary key uuid for observation > dataSource: uuid, --foreign key to the data source which generated the > observation, like a smart device, API or human. > about: uuid, --foreign key to the user this observation is about > label: string?, --labels are human readable identifiers, for example > "location observation for James" > start_at: datetime, --when the observation began being observed > end_at: datetime? --when the observation stopped being observed, some > observations won't need this > }; > CREATE TYPE EventType AS OPEN { > eventId: uuid, --primary key uuid for event > participant: uuid, --foreign key to user that participated in this event > start_at: datetime, --start of event > end_at: datetime, --end of event using `` because of a potential > AsterixDB bug > name: string, > level: bigint?, --Jordan's paper referred to different levels of daily > activities. > observations: [uuid] --foreign keys to ids of observations which were > used to make up this event > }; > CREATE TYPE DataSourceType AS OPEN { > dataSourceId: uuid, --primary key uuid for data sources > owner: uuid, --foreign key to the user who owns this data source > label: string?, --human-readable string for the data source, example: > "Mike's iPhone" > personicleHost: string? --this represents metadata about the Personicle > application which was used for this data source, example: "Personicle Android > application v1.2.43" > }; > --The code below creates collections using the ADM specified above. > --Therefore this code can be run as boilerplate code to get started with > using AsterixDB. > --Note that I've specified the primary key to be "AUTOGENERATED" which > --means AsterixDB will create one for us if the UUID key is omitted, > --if it is provided AsterixDB will use the UUID that was provided. > USE Personicle; > --We will have one collection for each of the ER diagram's top-level entity > type instances. > --(Instances of their subtypes will conform to the collection's type but will > also have additional attributes > --appropriate to their particular subtype. AsterixDB's open types make this > possible.) In MongoDB, we would > --have these same collections. We just wouldn't bother to define any of their > type info (and the system wouldn't > --do any checking); everything would be by convention/documentation, but the > data would be exactly the same. > CREATE DATASET users(UserType) PRIMARY KEY userId AUTOGENERATED; > CREATE DATASET observations(ObservationType) PRIMARY KEY observationId > AUTOGENERATED; > CREATE DATASET events(EventType) PRIMARY KEY eventId AUTOGENERATED; > CREATE DATASET datasources(DataSourceType) PRIMARY KEY dataSourceId > AUTOGENERATED; -- This message was sent by Atlassian Jira (v8.20.1#820001)