Databases

Databases

The database data object is used to represent a Parquet-format database in the platform. When using the database in Spark SQL you can use either the shorter databaseName or in the case of possible duplicates, the longer uniqueDatabaseName. Additional metadata related to databases can be stored in properties.

Database API Method Specifications

API method: /database-xxxx/describe

Specification

Describes a database data object. A project ID can be given to request user-provided metadata from a particular project but it is not necessary as database data object belongs only to one project at all times. Cloning of database data object is suppressed. Relocate method is available for moving a database data object from one project to another one.

Inputs

  • project string (optional) Project or container ID to be used as a hint for finding the object in an accessible project

  • defaultFields boolean (optional, default false if fields is supplied, true otherwise) whether to include the default set of fields in the output (the default fields are described in the "Outputs" section below). The selections are overridden by any fields explicitly named in fields.

  • fields mapping (optional) include or exclude the specified fields from the output. These selections override the settings indefaultFields.

  • key Desired output field; see the "Outputs" section below for valid values here

  • value boolean whether to include the field

The following options are deprecated (and will not be respected if fields is present):

  • properties boolean (optional, default false) Whether the properties should be returned

  • details boolean (optional, default false) Whether the details should also be returned

Outputs

  • id string The object ID (i.e. the string "database-xxxx")

The following fields are included by default (but can be disabled using fields or defaultFields):

  • project string ID of the project or container in which the object was found

  • class string The value "database"

  • databaseName string The suffix of uniqueDatabaseName used for referencing a Parquet-format database. If a user has access to multiple databases with the same databaseName, the user will have to reference the Parquet-format database by uniqueDatabaseName

  • uniqueDatabaseName string The Parquet-format database name

  • types array of strings Types associated with the object

  • created timestamp Time at which this object was created

  • state string Always "open"

  • hidden boolean Whether the object is hidden or not

  • links array of strings The object IDs that are pointed to from

    this object

  • name string The name of the database data object. The name

    of the object can be different from databaseName

  • folder string The full path to the folder containing the object

  • sponsored boolean Whether the object is sponsored by DNAnexus

  • tags array of strings Tags associated with the object

  • modified timestamp Time at which the user-provided metadata of the object was last modified

  • createdBy mapping How the object was created

    • user string ID of the user who created the object or launched an execution which created the object

    • job string present if a job created the object ID of the job that created the object

    • executable string present if a job created the object ID of the app or applet that the job was running

The following field (included by default) is available if the object is sponsored by a third party:

  • sponsoredUntil timestamp Indicates the expiration time of data sponsorship (this field is only set if the object is currently sponsored, and if set, the specified time is always in the future)

The following fields are only returned if the corresponding field in the fields input is set to true:

  • properties mapping Properties associated with the object

    • key Property name

    • value string Property value

  • details mapping or array Contents of the object’s details

Errors

  • ResourceNotFound

    • The specified object does not exist or the specified project does not exist

  • InvalidInput

    • The input is not a hash, project (if supplied) is not a string

  • PermissionDenied

    • VIEW access required for the project provided (if any), and VIEW access required for some project containing the specified object (not necessarily the same as the hint provided)

API method: /database-xxxx/relocate

Specification

Moves the database data object from the current project to the specified project. You may not relocate a database to another project which already contains a database with the same database name.

Inputs

  • project string ID of the project to which the database should be relocated (i.e. a string in the form "project-xxxx")

  • destination string (optional, default "/") The destination folder in project

  • parents boolean (optional, default false) Whether the destination folder and/or parent folders should be created if they do not exist

Outputs

  • id string ID of the moved database object (i.e. a string in the form "database-xxxx")

  • project string ID of the modified destination project

Errors

  • ResourceNotFound

    • The specified database does not exist

    • The project specified in project does not exist

    • The folder specified in destination does not exist in the destination project and parents is set to false

    • The source or destination project is not accessible for specified action due to missing license

  • InvalidInput

    • project is missing, is not a project ID or is the same as source project

    • destination (if provided) is not a nonempty string starting with "/"

    • parents (if provided) is not a boolean

    • project must be in the same region as the source project

    • A database with the same databaseName already exists in the target project

  • PermissionDenied

    • CONTRIBUTE/ADMINISTER access is required, depending on PROTECTED flag on the source project

    • UPLOAD access is required in the destination project

Last updated