What is nosql?
Nosql (nosql = not only SQL) means not only SQL expansion, but also non-relational databases.
With the rise of Internet Web websites, traditional relational databases are dealing with Web websites, especially ultra-large-scale and high-concurrency SNS type pure Dynamic Web websites, in the traditional telecom industry, tens of millions or even hundreds of millions of data are being processed, and some customers have suggested that they need to store the relevant log data for more than 50 years, exposing many insurmountable problems, non-relational databases have developed rapidly due to their own characteristics.
Insurmountable problems of relational databases:
- Cannot handle high-concurrency database read/write requirements
- It cannot well handle the demand for efficient storage and access to massive data.
- Cannot well handle the high scalability and high availability requirements for Databases
Why use nosql
SQL language and relational databases (MySQL, PostgreSQL, Oracle, and so on) are common data solutions that occupy the vast majority of the market. But as mentioned above, there are many difficult problems to solve. However, in the recent rise of nosql, a number of data products have emerged with features such as high availability, linear expansion, and MAP/reduce operations. They have the following features:
- Frequent write operations and relatively small read statistics operations
- Massive Data (such as the data to be analyzed in a data warehouse) is suitable for storage in a loose and distributed file storage system.
- Stores binary files (such as MP3 or PDF files) and provides download functions for your browser.
These data products do not replace the original data products, but provide more choices for different application scenarios. That is to say, in some specific situations, if a relational database cannot solve the problem, you can consider using nosql instead of simply porting the application to nosql, after all, fit is the best.
Popular nosql
Now we have sorted out nosql, including all kinds of official nosql websites.
15 nosql Databases
What is hbase?
Hbase is a sub-project in Apache hadoop. hbase relies on hadoop's HDFS as the basic storage unit. By using hadoop's DFS tool, you can see the structure of these data storage folders, you can also use the MAP/reduce framework (Algorithm) Perform hbase operations, as shown in:
Hbase also includes jetty in the product and uses embedded methods to start jetty during hbase startup. Therefore, you can manage hbase on the web interface and view the current running status, very lightweight and convenient.
Hbase is a sub-project in Apache hadoop and has become a top-level project in Apache.
Hbase is an open-source version of Google bigtable (based on Google File System.
Why?Hbase
Hbase is a database suitable for storing unstructured data, unlike general relational databases. the so-called unstructured data storage means that hbase is column-based instead of Row-based, which facilitates reading and writing your big data content.
Hbase is a data storage method between map entry (Key & value) and DB row. This is a bit similar to the popular memcache, but it is not just a simple key that corresponds to a value. You may need to store the data structure of multiple attributes, however, there are not so many associations in traditional database tables. This is called loose data.
Simply put, you can create a table in hbase as a large table, and the attributes of this table can be dynamically increased as needed, there is no association query between tables in hbase. You only need to tell your data to the column families stored in hbase. You do not need to specify its specific types: Char, varchar, Int, tinyint, text, and so on. However, you must note that hbase does not include functions such as transactions.
Apache hbase is very similar to Google bigtable. A data row has an selectable key and any number of columns. Tables are loosely stored. Therefore, you can define different columns for rows. This feature is very useful for large projects and simplifies the design and upgrade costs.
Hbase Storage Structure
Hbase is a column-based database. Let's take a look at the comparison between relational databases and hbase database storage.
Comparison between Row-based storage and column-based storage:
Row-based storage