1) What is CouchDB?
CouchDB is a document typed database server which can be accessed through RESTful JSON API. It is a schema free and Ad-hoc database with a flat address space.
2) How it is different from other databases?
- It is not a relational database.
- It is not a object oriented database rather it is meant to function as a seamless persistence layer for an OO programming language.
3) What language is CouchDB written in?
Early work on CouchDB was started in C++ programming language but soon replaced by Erlang OTP platform. Erlang is a functional programming language with an emphasis on fault tolerance.
4) Enlist the main features of CouchDB.
- JSON Documents
- RESTful Interface
- N-Master Replication
- Built for Offline
- Replication filter
5) Describe CouchDB Kit.
It is designed for Python application to access and manage CouchDB. It allows to manage CouchDB server, database, doc management and view access.
6) What is ETL ?
ETL stands for Extracting, Transforming and Loading of data from any system to the destination. It consist of 3 steps for data integration process:
- Extracting: It is the process in which first we locate the data and then removing source file.
- Transforming: It is the process of transporting the file to the required target.
- Loading: Loading the file in the target system in the format applicable.
7) What are the various tools used in ETL?
- Cognos Decision Stream
- Oracle Warehouse Builder
- Business Objects XI
- SAS business warehouse
- SAS Enterprise ETL server
8) How can we distribute load across multiple nodes?
We can distribute load by using a Http proxy like nginx. Firstly, all the GET loads spread across the nodes, then it directs all the PUT, POST & DELETE to a master node.
9) What is fact? What are the types of facts?
Fact is described as a central component of a multi-dimensional model which analyse all the measures. Types of facts are:
- Addictive Facts
- Semi-addictive Facts
- Non-addictive Facts
10) What is Cubes and OLAP Cubes?
Cubes are data processing unit which provides multi-dimensional analysis. It consist of fact tables and dimensions from the data warehouse. OLAP stand for Online Analytics Processing, OLAP Cubes is used for reporting purpose that stores large amount of data in multi-dimensional form.
11) What platforms does CouchDB supported?
It supports mostly all the POSIX platform such as GNU/Linux also, OS X (Apple inc.).
Windows is not initially supported but now we can install in windows through two methods:
- Installation from Binaries
- Installation from Sources
12) Give the limitation of Views.
Views cannot update documents or database as they are always Read Only.
13) Write the syntax to obtain list of the design document?
Syntax:
startkey="_design/"&endkey="_design0"
14) Why CouchDB not use Mnesia?
It does not use due to following reasons:
- Mnesia has storage limitation of 2 gig per file.
- It requires validation and fixup cycle after power failure.
- In Mnesia replication is effective for clustering but not for disconnected, distributed edits.
15) Write the code for Replication?
Syntax:
POST /_replicate with a post body of
{"source":"$source_database"
,
"target":"$target_database"}
16) Enlist the location CouchDB log files.
In linux/unix default location is
/usr/local/var/log/couchdb/couch.log
Above set is located in default.ini file
/etc/couchdb/default.ini
17) Erlang was slow in adapting Unicode.Is Unicode or UTF-8 a problem with CouchDB?
CouchDB uses Erlang binaries internally.All data coming to CouchDB must be UTF-8 encoded.
18) What does IBM’s involvement mean for CouchDB and the community?
The main consequences of IBM’s involvement are:
- The code is now being apache licensed, instead of GPL.
- Damien is going to be contributing much more time.
19) What is the use of CouchDB?
CouchDB allows you to write a client side application that connect directly to the Couch without the need for a server side middle layer. It also reduces development time.
20) What does COUCH means in CouchDB?
It's an acronym,Cluster of Unreliable Commodity Hardware. It's acronym defines the goals of massive scalability and high reliability on fault-prone hardware.
21) How is PouchDB different from CouchDB?
PouchDB is a CouchDB client, due to which we can easily switch between a local database or an online CouchDB instance without changing any of the application’s code.
Some of the differences are:
- View Collation:CouchDB uses ICU to order keys in a view query whereas in PouchDB keys are in ASCII ordered.
- View Offset:CouchDB returns an offset property in the view results. In PouchDB, offset just mirrors the skip parameter rather than returning a true offset.
22) How to use transactions with CouchDB?
CouchDB uses an “Optimistic concurrency†model. This model allows to send a document version along with the update, and CouchDB rejects the change if the current document version doesn’t match with the sent document.
23) Enlist basics of CouchDB?
- All the Items stored in the database is documents.
- Each documents has units called, fields , and fields are key and value pair.
- Each document has an unique id to identify them "_id" being the key and the value of each document must be unique.
- Database operations are done through REST Style http requests.
- CouchDb's responses are in JSON format etc.
24) How can we connect to CouchDB without going through the HTTP API?
CouchDB’s data model and internal API map the REST/HTTP model so well that any other API would basically similar to HTTP.
25) How can we connect to remote CouchDB?
On the local machine,set up an ssh tunnel to your server and tell it to forward requests to the local port 5984 to the remote server's port 5984:
$ ssh -L5984:127.0.0.1:5984 ssh.example.com
Now we can connect to the remote CouchDB through localhost:5984/
26) Enlist different HTTP request format.
- GET
- POST
- HEAD
- PUT
- DELETE
- COPY