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...
Other Authors: | |
---|---|
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.