Big data analytics is the process of examining large data sets containing a variety of data types – i.e., big data -- to uncover hidden patterns, unknown correlations, market trends, customer preferences and other useful business information. The analytical findings can lead to more effective marketing, new revenue opportunities, better customer service, improved operational efficiency, competitive advantages over rival organizations and other business benefits. The primary goal of big data analytics is to help companies make more informed business decisions by enabling data scientists, predictive modelers and other analytics professionals to analyze large volumes of transaction data, as well as other forms of data that may be untapped by conventional business intelligence(BI) programs. That could include Web server logs and Internet clickstream data, social media content and social network activity reports, text from customer emails and survey responses, mobile-phone call detail records and machine data captured by sensors connected to the Internet of Things. • Some people exclusively associate big data with semi-structured and unstructured data of that sort, but consulting firms like Gartner Inc. and Forrester Research Inc. also consider transactions and other structured data to be valid components of big data analytics applications. • Big data can be analyzed with the software tools commonly used as part of advanced analytics disciplines such as predictive analytics, data mining, text analytics and statistical analysis. • Mainstream BI software and data visualization tools can also play a role in the analysis process. • But the semi-structured and unstructured data may not fit well in traditional data warehouses based on relational databases. • Furthermore, data warehouses may not be able to handle the processing demands posed by sets of big data that need to be updated frequently or even continually -- for example, real-time data on the performance of mobile applications or of oil and gas pipelines. • As a result, many organizations looking to collect, process and analyze big data have turned to a newer class of technologies that includes Hadoop and related tools such as YARN, MapReduce, Spark, Hive and Pig as well as NoSQL databases. • Those technologies form the core of an open source software framework that supports the processing of large and diverse data sets across clustered systems. Introduction • Relational and transactional databases based on SQL language have clearly dominated the market of data storage and data manipulation over the past 20 years. • Several factors can explain this position of technological leadership. • First of all, SQL is a standardized language, even if each vendor has implemented slight adaptation on it. • This aspect is a key factor of cost reduction for enterprises in term of training in comparison of specific and proprietary technologies. • As a result, many organizations looking to collect, process and analyze big data have turned to a newer class of technologies that includes Hadoop and related tools such as YARN, MapReduce, Spark, Hive and Pig as well as NoSQL databases. Those technologies form the core of an open source software framework that supports the processing of large and diverse data sets across clustered systems. • Secondly, SQL is embedding most of commonly used functionalities to manage transactions and insure the integrity of data. • Finally, this technology is very mature and over time a lot of powerful tools have been implemented in term of backup, monitoring, analytics • However, important limitations have appeared over the last 10 years, and providers of online services were the first who had to address these limitations Five major weaknesses of relational databases • The insufficient capacity of distribute treatements over a large quantity of machines, to face picks of charge: this is the scaling of treatement. • The insufficient capacity to store data over a large quantity of machines, to address their volume: this is the scaling of the data. • The insufficient capacity to distribute the database over several data-centers to insure the continuty of service: This is the redundancy • The insufficient capacity to adjust its data model to the nature of the data ,due to the velocity of web data • The bad performance to access data as soon as it requires the combination several tables due to the velocity of the web data and the complexity of unstructured data. • If the term “NoSQL” figures out that the SQL language is not adapted to distributed databases, in fact it is more the principle on which it is build that are difficult to apply: the relational and transactional data model, implemented in third normal form. • Relational database provides a set of functionalities to access data across several tables by complex queries. • It provides also referential integrity to insure the constant validity of the links between entities. • Such mechanisms are extremely costly and complex to implement in distributed architecture, considering that it is necessary to insure that all data that are linked together have to be hosted on the same node. • Moreover schema, not applicable to the velocity of web data. • As a transactional database, they must respect the ACID constraints, i.e. the Atomicity of updates, the Consistency of the database, the Isolation and the Durability of queries. • These constraints are perfectly applicable in a centralized architecture, but much more complex to insure in a distributed architecture. NoSQL and Big Data • Both the 3rd normal form and the ACID constraints make relational databases intolerant to the partitioning of data. • However, three major criteria can be considered as a triptych in the implementation of a distributed architecture: • 1. Coherence (consistence/unity) • 2. Availability • 3. Partition Tolerance The Coherence: All the nodes of the system have to see exactly the same data at the same time The Availability: The system must stay up and running even if one of its node is failing down The Partition Tolerance : Each subnet-works must be autonomous (work individually) • The implementation of these three characteristics at the same time is not possible in a distributed architecture and a trade-off(change) is necessary • On a practical point of view, a relational database insures the availability and coherence of data, but it shows many limitations regarding the tolerance to partitioning. • As a consequence, major players of the market (for example shop clues and amezon)of online services had to implement specific solutions in term of data storage, proprietary in a first hand, and then transmitted to open sources communities that have insured the convergence of these heterogeneous solutions in four major categories of NoSQL databases: