Seven NoSQL Databases in a Week get up and running with the fundamentals and functionalities of seven of the most popular NoSQL databases

A beginner's guide to get you up and running with Cassandra, DynamoDB, HBase, InfluxDB, MongoDB, Neo4j, and Redis About This Book Covers the basics of 7 NoSQL databases and how they are used in the enterprises Quick introduction to MongoDB, DynamoDB, Redis, Cassandra, Neo4j, InfluxDB, and Hbase...

Full description

Bibliographic Details
Other Authors: Ploetz, Aaron, author (author)
Format: eBook
Language:Inglés
Published: Birmingham ; Mumbai : Packt 2018.
Edition:1st edition
Subjects:
See on Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631469106719
Table of Contents:
  • Title Page
  • Copyright and Credits
  • Dedication
  • Packt Upsell
  • Contributors
  • Table of Contents
  • Preface
  • Chapter 1: Introduction to NoSQL Databases
  • Consistency versus availability
  • ACID guarantees
  • Hash versus range partition
  • In-place updates versus appends
  • Row versus column versus column-family storage models
  • Strongly versus loosely enforced schemas
  • Summary
  • Chapter 2: MongoDB
  • Installing of MongoDB
  • MongoDB data types
  • The MongoDB database
  • MongoDB collections
  • MongoDB documents
  • The create operation
  • The read operation
  • Applying filters on fields
  • Applying conditional and logical operators on the filter parameter
  • The update operation
  • The delete operation
  • Data models in MongoDB
  • The references document data model
  • The embedded data model
  • Introduction to MongoDB indexing
  • The default _id index
  • Replication
  • Replication in MongoDB
  • Automatic failover in replication
  • Read operations
  • Sharding
  • Sharded clusters
  • Advantages of sharding
  • Storing large data in MongoDB
  • Summary
  • Chapter 3: Neo4j
  • What is Neo4j?
  • How does Neo4j work?
  • Features of Neo4j
  • Clustering
  • Neo4j Browser
  • Cache sharding
  • Help for beginners
  • Evaluating your use case
  • Social networks
  • Matchmaking
  • Network management
  • Analytics
  • Recommendation engines
  • Neo4j anti-patterns
  • Applying relational modeling techniques in Neo4j
  • Using Neo4j for the first time on something mission-critical
  • Storing entities and relationships within entities
  • Improper use of relationship types
  • Storing binary large object data
  • Indexing everything
  • Neo4j hardware selection, installation, and configuration
  • Random access memory
  • CPU
  • Disk
  • Operating system
  • Network/firewall
  • Installation
  • Installing JVM
  • Configuration
  • High-availability clustering.
  • Causal clustering
  • Using Neo4j
  • Neo4j Browser
  • Cypher
  • Python
  • Java
  • Taking a backup with Neo4j
  • Backup/restore with Neo4j Enterprise
  • Backup/restore with Neo4j Community
  • Differences between the Neo4j Community and Enterprise Editions
  • Tips for success
  • Summary
  • References
  • Chapter 4: Redis
  • Introduction to Redis
  • What are the key features of Redis?
  • Performance
  • Tunable data durability
  • Publish/Subscribe
  • Useful data types
  • Expiring data over time
  • Counters
  • Server-side Lua scripting
  • Appropriate use cases for Redis
  • Data fits into RAM
  • Data durability is not a concern
  • Data at scale
  • Simple data model
  • Features of Redis matching part of your use case
  • Data modeling and application design with Redis
  • Taking advantage of Redis' data structures
  • Queues
  • Sets
  • Notifications
  • Counters
  • Caching
  • Redis anti-patterns
  • Dataset cannot fit into RAM
  • Modeling relational data
  • Improper connection management
  • Security
  • Using the KEYS command
  • Unnecessary trips over the network
  • Not disabling THP
  • Redis setup, installation, and configuration
  • Virtualization versus on-the-metal
  • RAM
  • CPU
  • Disk
  • Operating system
  • Network/firewall
  • Installation
  • Configuration files
  • Using Redis
  • redis-cli
  • Lua
  • Python
  • Java
  • Taking a backup with Redis
  • Restoring from a backup
  • Tips for success
  • Summary
  • References
  • Chapter 5: Cassandra
  • Introduction to Cassandra
  • What problems does Cassandra solve?
  • What are the key features of Cassandra?
  • No single point of failure
  • Tunable consistency
  • Data center awareness
  • Linear scalability
  • Built on the JVM
  • Appropriate use cases for Cassandra
  • Overview of the internals
  • Data modeling in Cassandra
  • Partition keys
  • Clustering keys
  • Putting it all together
  • Optimal use cases.
  • Cassandra anti-patterns
  • Frequently updated data
  • Frequently deleted data
  • Queues or queue-like data
  • Solutions requiring query flexibility
  • Solutions requiring full table scans
  • Incorrect use of BATCH statements
  • Using Byte Ordered Partitioner
  • Using a load balancer in front of Cassandra nodes
  • Using a framework driver
  • Cassandra hardware selection, installation, and configuration
  • RAM
  • CPU
  • Disk
  • Operating system
  • Network/firewall
  • Installation using apt-get
  • Tarball installation
  • JVM installation
  • Node configuration
  • Running Cassandra
  • Adding a new node to the cluster
  • Using Cassandra
  • Nodetool
  • CQLSH
  • Python
  • Java
  • Taking a backup with Cassandra
  • Restoring from a snapshot
  • Tips for success
  • Run Cassandra on Linux
  • Open ports 7199, 7000, 7001, and 9042
  • Enable security
  • Use solid state drives (SSDs) if possible
  • Configure only one or two seed nodes per data center
  • Schedule weekly repairs
  • Do not force a major compaction
  • Remember that every mutation is a write
  • The data model is key
  • Consider a support contract
  • Cassandra is not a general purpose database
  • Summary
  • References
  • Chapter 6: HBase
  • Architecture
  • Components in the HBase stack
  • Zookeeper
  • HDFS
  • HBase master
  • HBase RegionServers
  • Reads and writes
  • The HBase write path
  • HBase writes - design motivation
  • The HBase read path
  • HBase compactions
  • System trade-offs
  • Logical and physical data models
  • Interacting with HBase - the HBase shell
  • Interacting with HBase - the HBase Client API
  • Interacting with secure HBase clusters
  • Advanced topics
  • HBase high availability
  • Replicated reads
  • HBase in multiple regions
  • HBase coprocessors
  • SQL over HBase
  • Summary
  • Chapter 7: DynamoDB
  • The difference between SQL and DynamoDB
  • Setting up DynamoDB
  • Setting up locally.
  • Setting up using AWS
  • The difference between downloadable DynamoDB and DynamoDB web services
  • DynamoDB data types and terminology
  • Tables, items, and attributes
  • Primary key
  • Secondary indexes
  • Streams
  • Queries
  • Scan
  • Data types
  • Data models and CRUD operations in DynamoDB
  • Limitations of DynamoDB
  • Best practices
  • Summary
  • Chapter 8: InfluxDB
  • Introduction to InfluxDB
  • Key concepts and terms of InfluxDB
  • Data model and storage engine
  • Storage engine
  • Installation and configuration
  • Installing InfluxDB
  • Configuring InfluxDB
  • Production deployment considerations
  • Query language and API
  • Query language
  • Query pagination
  • Query performance optimizations
  • Interaction via Rest API
  • InfluxDB API client
  • InfluxDB with Java client
  • InfluxDB with a Python client
  • InfluxDB with Go client
  • InfluxDB ecosystem
  • Telegraf
  • Telegraf data management
  • Kapacitor
  • InfluxDB operations
  • Backup and restore
  • Backups
  • Restore
  • Clustering and HA
  • Retention policy
  • Monitoring
  • Summary
  • Other Books You May Enjoy
  • Index.