Getting System Information
- concept
N1QL has a system catalog that stores metadata about a database. The system catalog is a namespace called system.
There is a keyspace for each type of artifact. The keyspace names are plural in order to avoid conflicting with N1QL keywords.
Logical Hierarchy
N1QL has the following artifacts:
-
Datastores
Datastores are similar to sites. A datastore is a database deployment, for example, a server cluster, cloud service, or mobile installation. It is analogous to a relation database instance.
-
Namespaces
Namespaces are similar to pools. A namespace is a unit of authorization, resource allocation, and tenancy. It is analogous to a relational database or schema.
-
Keyspaces
Keyspaces map to buckets in Couchbase Server. A keyspace is a set of documents that may vary in structure. It is a unit of authorization and resource allocation. It is analogous to a relational database table.
-
Indexes
An index on a keyspace. It is analogous to a relational database index. Types of indexes include b-tree (ForestDB or MOI) and view indexes.
-
Dual
The dual keyspace has been added for evaluating constant expressions. It contains a single entry with no attributes.
Querying Datastores
You can query datastores using the SELECT
statement as follows:
SELECT * FROM system:datastores
The query returns the following attributes:
-
id
: string (id for the datastore) -
url
: string (URL for the datastore instance)
Querying Namespaces
You can query namespaces using the SELECT
statement as follows:
SELECT * FROM system:namespaces
The query returns the following attributes:
-
id
: string (id for the namespace) -
name
: string (name for the namespace) -
datastore_id
: string (id for the datastore to which the namespace belongs)
Querying Keyspaces
You can query keyspaces using the SELECT
statement as follows:
SELECT * FROM system:keyspaces
The query returns the following attributes:
-
id
: string (id for the keyspace) -
name
: string (name for the keyspace) -
namespace_id
: string (id for the namespace to which the keyspace belongs) -
datastore_id
: string (id for the datastore to which the keyspace belongs)
Querying Indexes
You can query indexes using the SELECT
statement as follows:
SELECT * FROM system:indexes
The query returns the following attributes:
-
id
: string (id for the index) -
name
: string (name for the index) -
index_key
: array of strings (list of index keys) -
using
: string (type of index, for example, gsi) -
state
: string (state of index, for example, online) -
keyspace_id
: string (id for the keyspace to which the index belongs) -
namespace_id
: string (id for the namespace to which the index belongs) -
datastore_id
: string (id for the datastore to which the index belongs)
Querying Dual
You can use dual to evaluate constant expressions.
SELECT 2+5 FROM system:dual
The query returns the result of the expression, 7 in this case.
Related Links
-
Refer to Monitor Queries for more information on the system namespace.