- Descripción general del servicio
-
Pasos iniciales
- Descripción
-
Tareas iniciales con clústeres
- Compra de una instancia de clúster
- Conexión a una instancia de clúster
-
Tareas iniciales con conjunto de réplicas
- Compra de una instancia de conjunto de réplicas
-
Conexión a una instancia de conjunto de réplicas
- Métodos de conexión
- (Recomendado) Conexión a instancias de conjunto de réplicas mediante DAS
- Conexión a una instancia de conjunto de réplicas a través de una red privada
- Conexión a una instancia de conjunto de réplicas a través de una red pública
- Conexión a una instancia de conjunto de réplicas mediante código de programa
-
Tareas iniciales con nodos únicos
- Compra de una instancia de nodo único
- Conexión a una instancia de nodo único
- Iniciar y cerrar sesión en la consola DDS
- Ejemplo: Comprar y conectarse a una instancia DDS
- Historial de cambios
-
Guía del usuario
- Migrar datos
- Ajuste del rendimiento
- Gestión de permisos
- Administración del ciclo de vida de instancias
-
Modificaciones de instancia
- Cambio del nombre de una instancia
- Cambio de una descripción de instancia
- Actualización de una versión menor del motor
- Actualización de una versión de motor principal
- Escalamiento del espacio de almacenamiento
- Cambio de una clase de instancia
- Cambio de nodos de instancia de clúster
- Cambio de nodos de instancia de conjunto de réplicas
- Configuración de la ventana de mantenimiento
- Cambio de una AZ
-
Copia de respaldo de datos
- Principios y soluciones de copia de respaldo
- Configuración de una política de copia de respaldo automatizada
- Configuración de una política de copia de respaldo incremental
- Configuración de la política de copia de respaldo entre regiones
- Creating a Manual Backup
- Eliminación de una copia de respaldo manual
- Eliminación de una copia de respaldo automatizada
- Descarga de un archivo de copia de respaldo
-
Restauración de datos
- Soluciones
- Restauración de datos en una instancia nueva
- Restauración de datos a la instancia original
- Restauración de datos a un punto en el tiempo
- Restaurar datos en una base de datos local
-
Gestión de plantillas de parámetros
- Descripción general
- Creación de una plantilla de parámetros
- Modificación de una plantilla de parámetros
- Consulta del historial de cambios de parámetros
- Exportación de una plantilla de parámetro
- Comparación de plantillas de parámetros
- Replicación de una plantilla de parámetro
- Restablecimiento de una plantilla de parámetro
- Aplicación de una plantilla de parámetros
- Consulta de registros de aplicación de una plantilla de parámetro
- Modificación de la descripción de una plantilla de parámetro
- Eliminación de una plantilla de parámetros
- Gestión de conexiones
- Uso de la base de datos
- Seguridad de los datos
- Monitoreo y reporte de alarmas
- Auditoría
- Registros
- Centro de tareas
- Recuperación ante desastres entre zona de disponibilidad
- Facturación
- Etiquetas
- Cuotas
- Sugerencias de uso de DDS
-
Resolución de problemas
- Mecanismo de manejo de fallos de nodo de instancia DDS
- Mensaje de error de conexión: error de red al intentar ejecutar el comando 'isMaster'
- Mensajes de error de conexión: No hay ruta al host e intento de conexión fallado
- Mensaje de error de conexión: Error de autenticación
- Mensaje de error de conexión: no se pudo conectar al servidor
- Mensaje de error de conexión: no puede listar varios servidores en la URL sin la opción 'replicaSet'
- Mensaje de error de conexión: tiempo de espera al recibir el mensaje
- Mensaje de error de conexión: excepción: login failed and U_STRINGPREP_PROHIBITED_ERROR
-
Preguntas Frecuentes
-
Consultoría de productos
- ¿Cuál es la relación entre DDS y MongoDB Edición de comunidad?
- ¿Cuáles son las diferencias entre DDS y GaussDB (para Mongo)?
- ¿Qué precauciones se deben tomar cuando se usa DDS?
- ¿Cuál es la disponibilidad de las instancias de base de datos DDS?
- ¿Mis instancias de base de datos DDS se verán afectadas por las instancias de base de datos DDS de otros usuarios?
- ¿DDS admite la implementación en varias zonas de disponibilidad?
- ¿Puedo cambiar la VPC de una instancia creada?
- ¿Puedo cambiar la región de una instancia creada?
- ¿Qué es el nodo oculto?
- Versiones de base de datos
-
Gestión de recursos y discos
- ¿Qué elementos ocupan el espacio de almacenamiento de las instancias DDS?
- ¿Qué tipos de registros y archivos ocupan espacio de almacenamiento de instancia de base de datos DDS?
- ¿Por qué se muestra el uso del espacio de almacenamiento en la GUI más pequeño que el uso real?
- ¿Por qué no aumenta el espacio en disco disponible después de eliminar los datos?
- ¿Por qué la memoria residente de una instancia de conjunto de réplicas de memoria de 4 vCPUs/8 GB es solo 4 GB?
- Ampliación de la capacidad y cambios en las especificaciones
-
Rendimiento de la base de datos
- ¿Cuándo se activará una conmutación principal/en espera para un clúster o conjunto de réplicas?
- Alto uso de almacenamiento
- ¿Cuál es el retardo de tiempo para la sincronización primaria/secundaria en un conjunto de réplicas?
- ¿Cómo se transfieren los datos entre los nodos primario y secundario de un conjunto de réplicas?
- ¿Cómo puedo borrar una alarma que dice que el uso de memoria de shard supera el 90%?
- ¿Qué puedo hacer si se informa de un error de consulta después de escribir datos en el clúster DDS?
- Permisos de base de datos
-
Creación y eliminación
- ¿Cómo selecciono especificaciones y nodos de instancia?
- ¿Por qué no se muestra una instancia en la consola después de crearla?
- ¿Puedo usar una plantilla para crear instancias de base de datos DDS?
- ¿Por qué faltan datos en mi base de datos?
- ¿Se eliminarán mis copias de respaldo si elimino mi cuenta de Cloud?
- ¿Cuáles son las diferencias entre la eliminación de instancia y la cancelación de suscripción?
-
Conexión de bases de datos
- ¿Qué debo hacer si no puedo conectarme a una instancia DDS?
- ¿Qué puedo hacer si el número de conexiones de una instancia alcanza su máximo?
- ¿Cómo puedo consultar y limitar el número de conexiones?
- ¿Qué debo hacer si ECS y DDS se implementan en diferentes VPC y no pueden comunicarse entre sí?
- ¿Es necesario que las aplicaciones admitan la reconexión automática a la base de datos DDS?
- ¿Cómo puedo crear e iniciar sesión en un ECS?
- Instalar un cliente
- Uso de la base de datos
- Migración de bases de datos
- Almacenamiento de bases de datos
- Parámetros de base de datos
- Copia de respaldo y restauración
- Seguridad de la red
- Monitoreo y alarma
-
Consultoría de productos
- Historial de cambio
-
Referencia de la API
- Antes de empezar
- Descripción general de API
- Llamadas a APIs
- Tareas iniciales
-
APIs V3.0 (recomendado)
- Consulta de la versión de la API
- Consulta de información de la versión de la base de datos
- Consulta de especificaciones de base de datos
- Consulta del tipo de disco de la base de datos
-
Gestión de instancias de base de datos
- Creación de una instancia de base de datos
- Reinicio de una instancia de base de datos
- Eliminación de una instancia de base de datos
- Consulta de instancias y detalles
- Escalamiento del espacio de almacenamiento
- Adición de nodos para una instancia de clúster
- Modificación de especificaciones de instancia de base de datos
- Realización de una conmutación primaria/secundaria en una instancia de conjunto de réplicas
- Habilitación o deshabilitación de SSL
- Modificación de un nombre de instancia de base de datos
- Cambio de una descripción de instancia
- Cambio de un puerto de base de datos
- Cambio de un grupo de seguridad
- Vinculación de un EIP
- Desvinculación de un EIP
- Cambio de una dirección IP privada
- Habilitación de direcciones IP de disco duro o configuración
- Configuración del acceso entre CIDR para un conjunto de réplicas
- Consulta de Zonas de disponibilidad a las que se puede migrar una instancia
- Migración de una instancia de base de datos a otra AZ
- Gestión de conexiones
-
Copia de respaldo y restauración
- Creación de una copia de respaldo manual
- Eliminación de una copia de respaldo manual
- Consulta de la lista de copia de respaldo
- Consulta de una política de copia de respaldo automatizada
- Configuración de una política de copia de respaldo automatizada
- Restauración de datos en una nueva instancia de base de datos
- Obtención del enlace para descargar un archivo de copia de respaldo
- Consulta de los intervalos de tiempo de restauración
- Obtención de la lista de bases de datos que se pueden restaurar
- Obtención de la lista de colecciones de bases de datos que se pueden restaurar
- Restauración de datos a la instancia de base de datos original
- Restauración de bases de datos y tablas a un punto en el tiempo
-
Configuración de parámetros
- Obtención de plantillas de parámetros
- Creación de una plantilla de parámetros
- Eliminación de una plantilla de parámetros
- Obtención de parámetros de una plantilla de parámetros especificada
- Modificación de parámetros en una plantilla de parámetros
- Aplicación de una plantilla de parámetros
- Obtención de parámetros de una instancia de base de datos especificada
- Modificación de parámetros de una instancia de base de datos especificada
-
Consultas de información de registro
- Consulta de registros lentos de la base de datos
- Obtención de enlaces para descargar registros de consultas lentos
- Muestra de registros lentos originales
- Consulta de registros de errores de base de datos
- Obtención de enlaces para descargar registros de errores
- Configuración de auditoría SQL
- Consulta de la política de auditoría de SQL
- Obtención de la lista de registros de auditoría
- Obtener enlaces para descargar registros de auditoría
- Gestión de Etiquetas
-
Gestión de bases de datos y usuarios
- Creación de un usuario de base de datos
- Creación de un rol de base de datos
- Consulta de detalles acerca de los usuarios de la base de datos
- Consulta de la lista de funciones de la base de datos
- Cambio de la contraseña de un usuario de base de datos
- Comprobación de la contraseña para iniciar sesión en una base de datos
- Consulta de parámetros de equilibrio de clúster
- Habilitación o deshabilitación del equilibrio de clústeres
- Configuración de la ventana de tiempo de actividad para Equilibrio de clúster
- Eliminación de un usuario de base de datos
- Eliminación de un rol de base de datos
- Gestión de cuotas
- Gestión de tareas
- API V3 (Próximamente no disponible)
- Ejemplos
- Políticas de permisos y acciones admitidas
- Apéndice
- Historial de cambios
-
Preguntas frecuentes
-
Consultoría de productos
- ¿Cuál es la relación entre edición de comunidad de DDS y MongoDB?
- ¿Cuáles son las diferencias entre DDS y GeminiDB Mongo?
- ¿Qué precauciones deben tomarse al usar DDS?
- ¿Cuál es la disponibilidad de las instancias de base de datos DDS?
- ¿Mis instancias de base de datos DDS se verán afectadas por las instancias de base de datos DDS de otros usuarios?
- ¿DDS admite despliegue de multi-AZ?
- ¿Puedo cambiar la VPC de una instancia creada?
- ¿Puedo cambiar la región de una instancia creada?
- ¿Qué es el nodo oculto?
- Versiones de base de datos
- Congelación, liberación, eliminación y cancelación de la suscripción de recursos
-
Gestión de recursos y discos
- ¿Qué elementos ocupan el espacio de almacenamiento de las instancias DDS?
- ¿Qué tipos de registros y archivos ocupan espacio de almacenamiento de instancia de base de datos DDS?
- ¿Por qué se muestra el uso del espacio de almacenamiento en la GUI más pequeño que el uso real?
- ¿Por qué no aumenta el espacio en disco disponible después de eliminar los datos?
- ¿Por qué la memoria residente de una instancia de conjunto de réplicas de memoria de 4 vCPUs/8 GB es solo 4 GB?
- Ampliación de la capacidad y cambios en las especificaciones
-
Rendimiento de la base de datos
- ¿Cuándo se activará una conmutación principal/en espera para un clúster o conjunto de réplicas?
- Alto uso de almacenamiento
- ¿Cuál es el retardo de tiempo para la sincronización primaria/secundaria en un conjunto de réplicas?
- ¿Cómo se transfieren los datos entre los nodos primario y secundario de un conjunto de réplicas?
- ¿Cómo puedo borrar una alarma que dice que el uso de memoria de shard supera el 90%?
- ¿Qué puedo hacer si se informa de un error de consulta después de escribir datos en el clúster DDS?
- Permisos de base de datos
-
Creación y eliminación
- ¿Cómo selecciono especificaciones y nodos de instancia?
- ¿Por qué no se muestra una instancia en la consola después de crearla?
- ¿Puedo usar una plantilla para crear instancias de base de datos DDS?
- ¿Por qué faltan datos de mi base de datos?
- ¿Se eliminarán mis copias de respaldo si elimino mi cuenta en nube?
- ¿Cuáles son las diferencias entre la eliminación de instancia y la cancelación de suscripción?
-
Conexión de bases de datos
- ¿Qué debo hacer si no puedo conectarme a una instancia DDS?
- ¿Qué puedo hacer si el número de conexiones de una instancia alcanza su máximo?
- ¿Cómo puedo consultar y limitar el número de conexiones?
- ¿Qué debo hacer si ECS y DDS se implementan en diferentes VPC y no pueden comunicarse entre sí?
- ¿Es necesario que las aplicaciones admitan la reconexión automática a la base de datos DDS?
- ¿Cómo puedo crear e iniciar sesión en un ECS?
- Instalar un cliente
- Uso de la base de datos
- Migración de bases de datos
- Almacenamiento de bases de datos
- Parámetros de base de datos
- Copia de respaldo y restauración
- Seguridad de la red
- Monitoreo y alarma
-
Consultoría de productos
- Actualmente, el contenido no está disponible en el idioma seleccionado. Sugerimos consultar la versión en inglés.
- What's New
- Function Overview
-
Product Bulletin
- Vulnerability Notice
-
Product Notices
- [Notice] Starting OBT for DDS Cluster 5.0 on Nov 5, 2024
- [Notice] Huawei Cloud DDS Replica Set 5.0 Will Be Released Commercially on Oct 11, 2024
- [Notice] Huawei Cloud DDS 3.4 Will Be Discontinued on Oct 11, 2024
- [Notice] Starting OBT for DDS 5.0 on July 24, 2024
- [Notice] Specifications with CPU-Memory Ratio of 1:8 Will Be Available for x86-Powered Enhanced II Replica Set Instances and Cluster Shards on February 15, 2023
- [Notice] DDS 4.4 OBT Invitation
- [Product Discontinuation Notice] Huawei Cloud Document Database Service (DDS) Single Node Instances Will Be Discontinued on July 15, 2023
- [Notice] Huawei Cloud DDS 4.4 Will Be Released Commercially on Oct 08, 2023
- Version Description
- Product Release Notes
- Billing
- Developer Guide
-
Best Practices
- Overview
- Security Best Practices
- Common Methods for Connecting to a DDS Instance
- From Other Cloud MongoDB to DDS
- From On-Premises MongoDB to DDS
- From ECS-hosted MongoDB to DDS
- How Do Replica Sets Achieve High Availability and Read/Write Splitting?
- Sharding
- How Do I Improve DDS Performance by Optimizing SQL Statements?
- How Do I Prevent the dds mongos Cache Problem?
- How Do I Solve the High CPU Usage Issue?
- How Do I Troubleshoot High Memory Usage of DDS DB Instances?
- What Can I Do If the Number of Connections of an Instance Reaches Its Maximum?
- Creating a User and Granting the Read-Only Permission to the User
- Proper Use of Data Definition Languages (DDL) Statements
- How Is a DDS Node Going to Be Disconnected and What Can I Do?
- Security White Paper
- Performance White Paper
- SDK Reference
-
Troubleshooting
- Overview
- DDS Instance Node Fault Handling Mechanism
- Connection Failure Message: network error while attempting to run command 'isMaster'
- Connection Failure Messages: No route to host and connection attempt failed
- Connection Failure Message: Authentication failed
- Connection Failure Message: couldn't connect to server
- Connection Failure Message: cannot list multiple servers in URL without 'replicaSet' option
- Connection Failure Message: Timeout while receiving message
- Connection Failure Message: exception: login failed and U_STRINGPREP_PROHIBITED_ERROR
- Change History
- Videos
- Glossary
-
More Documents
-
User Guide (ME-Abu Dhabi Region)
- Introduction
- Logging In to the DDS Console
- Getting Started with Clusters
- Getting Started with Replica Sets
- Connection Management
- Migrating Data
- Account Management
-
Instance Management
- Changing a DB Instance Name
- Adding Cluster Instance Nodes
- Reverting Cluster Instance Nodes
- Scaling Up Storage Space
- Changing the CPU or Memory of a Cluster DB Instance
- Changing the CPU or Memory of a Replica Set DB Instance
- Manually Switching the Primary and Secondary Nodes of a Replica Set
- Exporting DB Instance Information
- Restarting a DB Instance or a Node
- Deleting a DB Instance
- Recycling a DB Instance
- Backup and Restore
- Parameter Group Settings
- Task Center
- Monitoring and Alarm Reporting
- Auditing
- Log Management
- Tag
-
FAQs
- Product Consulting
- Database Performance
- Creation and Deletion
-
Database Connection
- Can an External Server Access the DDS DB Instance?
- What Is the Number of DDS Database Connections?
- What Should I Do If an ECS Cannot Connect to a DDS DB Instance?
- What Should I Do If a Database Client Problem Causes a Connection Failure?
- What Should I Do If a DDS Server Problem Causes a Connection Failure?
- How Can My Applications Access a DDS DB Instance in a VPC?
- Do Applications Need to Support Automatic Reconnecting to the DDS Database?
- How Do I Create and Log In to an ECS?
- How Can I Install a MongoDB Client?
- How Do I Install Robo 3T?
- Database Usage
- Database Storage
- Database Parameter Modification
- Backup and Restoration
- Network Security
- Resource Monitoring
- Log Management
- Which Commands are Supported or Restricted by DDS?
- Change History
-
API Reference (ME-Abu Dhabi Region)
- Before You Start
- API Overview
- Calling APIs
- Getting Started
-
API Description
- Querying the API Version
- Querying Database Version Information
- Querying All DB Instance Specifications
-
DB Instance Management
- Creating a DB Instance
- Restarting a DB Instance
- Deleting a DB Instance
- Querying DB Instances
- Scaling Up Storage Space
- Adding Nodes for a Cluster Instance
- Modifying DB Instance Specifications
- Performing a Primary/Secondary Switchover in a Replica Set Instance
- Enabling or Disabling SSL
- Modifying a DB Instance Name
- Changing a Database Port
- Changing a Security Group
- Binding an EIP
- Unbinding an EIP
- Changing a Private IP Address
- Backup and Restoration
- Tag Management
- Permissions Policies and Supported Actions
- Appendix
- Change History
-
User Guide (Paris Region)
- Introduction
- Logging In to the DDS Console
- Getting Started with Clusters
- Getting Started with Replica Sets
- Connection Management
- Migrating Data
- Account Management
-
Instance Management
- Changing a DB Instance Name
- Adding Cluster Instance Nodes
- Reverting Cluster Instance Nodes
- Scaling Up Storage Space
- Changing the CPU or Memory of a Cluster DB Instance
- Changing the CPU or Memory of a Replica Set DB Instance
- Manually Switching the Primary and Secondary Nodes of a Replica Set
- Exporting DB Instance Information
- Restarting a DB Instance or a Node
- Deleting a DB Instance
- Backup and Restore
- Parameter Group Settings
- Task Center
- Monitoring and Alarm Reporting
- Auditing
- Log Management
- Tag
-
FAQs
- Product Consulting
- Database Performance
- Creation and Deletion
-
Database Connection
- Can an External Server Access the DDS DB Instance?
- What Is the Number of DDS Database Connections?
- What Should I Do If an ECS Cannot Connect to a DDS DB Instance?
- What Should I Do If a Database Client Problem Causes a Connection Failure?
- What Should I Do If a DDS Server Problem Causes a Connection Failure?
- How Can My Applications Access a DDS DB Instance in a VPC?
- Do Applications Need to Support Automatic Reconnecting to the DDS Database?
- How Do I Create and Log In to an ECS?
- How Can I Install a MongoDB Client?
- How Do I Install Robo 3T?
- Database Usage
- Database Storage
- Database Parameter Modification
- Backup and Restoration
- Network Security
- Log Management
- Which Commands are Supported or Restricted by DDS?
- Change History
-
API Reference (Paris Region)
- Before You Start
- API Overview
- Calling APIs
- Getting Started
-
API Description
- Querying the API Version
- Querying Database Version Information
- Querying All DB Instance Specifications
-
DB Instance Management
- Creating a DB Instance
- Restarting a DB Instance
- Deleting a DB Instance
- Querying DB Instances
- Scaling Up Storage Space
- Adding Nodes for a Cluster Instance
- Modifying DB Instance Specifications
- Performing a Primary/Secondary Switchover in a Replica Set Instance
- Enabling or Disabling SSL
- Modifying a DB Instance Name
- Changing a Database Port
- Changing a Security Group
- Binding an EIP
- Unbinding an EIP
- Changing a Private IP Address
- Backup and Restoration
- Appendix
- Change History
-
User Guide (Kuala Lumpur Region)
- Introduction
- Logging In to the DDS Console
- Getting Started with Clusters
- Getting Started with Replica Sets
- Connection Management
- Migrating Data
- Account Management
-
Instance Management
- Changing a DB Instance Name
- Adding Cluster Instance Nodes
- Reverting Cluster Instance Nodes
- Scaling Up Storage Space
- Changing the CPU or Memory of a Cluster DB Instance
- Changing the CPU or Memory of a Replica Set DB Instance
- Manually Switching the Primary and Secondary Nodes of a Replica Set
- Exporting DB Instance Information
- Restarting a DB Instance or a Node
- Deleting a DB Instance
- Recycling a DB Instance
- Backup and Restore
- Parameter Group Settings
- Task Center
- Monitoring and Alarm Reporting
- Auditing
- Log Management
- Tag
-
FAQs
- Product Consulting
- Database Performance
- Creation and Deletion
-
Database Connection
- Can an External Server Access the DDS DB Instance?
- What Is the Number of DDS Database Connections?
- What Should I Do If an ECS Cannot Connect to a DDS DB Instance?
- What Should I Do If a Database Client Problem Causes a Connection Failure?
- What Should I Do If a DDS Server Problem Causes a Connection Failure?
- How Can My Applications Access a DDS DB Instance in a VPC?
- Do Applications Need to Support Automatic Reconnecting to the DDS Database?
- How Do I Create and Log In to an ECS?
- How Can I Install a MongoDB Client?
- How Do I Install Robo 3T?
- Database Usage
- Database Storage
- Database Parameter Modification
- Backup and Restoration
- Network Security
- Resource Monitoring
- Log Management
- Which Commands are Supported or Restricted by DDS?
- Change History
-
API Reference (Kuala Lumpur Region)
- Before You Start
- API Overview
- Calling APIs
- Getting Started
-
API Description
- Querying the API Version
- Querying Database Version Information
- Querying All DB Instance Specifications
-
DB Instance Management
- Creating a DB Instance
- Restarting a DB Instance
- Deleting a DB Instance
- Querying DB Instances
- Scaling Up Storage Space
- Adding Nodes for a Cluster Instance
- Modifying DB Instance Specifications
- Performing a Primary/Secondary Switchover in a Replica Set Instance
- Enabling or Disabling SSL
- Changing the Administrator Password
- Modifying a DB Instance Name
- Changing a Database Port
- Changing a Security Group
- Binding an EIP
- Unbinding an EIP
- Changing a Private IP Address
- Backup and Restoration
- Tag Management
- Permissions Policies and Supported Actions
- Appendix
- Change History
-
User Guide (ME-Abu Dhabi Region)
Copiado.
Sharding
Puede fragmentar una colección de gran tamaño para una instancia de clúster fragmentada. Particionamiento distribuye los datos entre diferentes máquinas para aprovechar al máximo el espacio de almacenamiento y la capacidad de cómputo de cada shard.
Cantidad de particiones
A continuación se muestra un ejemplo usando la base de datos mytable, la colección mycoll y el name del campo como clave de shard.
- Inicie sesión en una instancia de clúster fragmentada con Mongo Shell.
- Habilite el sharding para las bases de datos que pertenecen a la instancia del clúster.
- Método 1
sh.enableSharding("<database>")
Ejemplo:
sh.enableSharding("mytable")
- Método 2
use admin db.runCommand({enablesharding:"<database>"})
- Método 1
- Shard una colección.
- Método 1
sh.shardCollection("<database>.<collection>",{"<keyname>":<value> })
Ejemplo:
sh.shardCollection("mytable.mycoll",{"name":"hashed"})
- Método 2
use admin db.runCommand({shardcollection:"<database>.<collection>",key:{"keyname":<value> }})
Tabla 1 Descripción del parámetro Parámetro
Descripción
<database>
Nombre de la base de datos
<collection>
Nombre de colección
<keyname>
Clave de shard
Las instancias de clúster se fragmentan según el valor de este parámetro. Seleccione una clave de shard adecuada para la colección en función de sus requisitos de servicio. Para más detalles, consulte Selección de una clave de fragmento.
<value>
El orden basado en el rango de la clave de shard.- 1: Índices ascendentes
- -1: Índices descendentes
- hashed: indica que se utiliza el sharding de hash. El sharding de hash proporciona una distribución de datos más uniforme en todo el clúster sharded.
Para obtener más información, consulte sh.shardCollection ().
- Método 1
- Compruebe el estado de almacenamiento de datos de la base de datos en cada shard.
sh.status()
Ejemplo:
Selección de una clave de fragmento
- Antecedentes
Cada clúster sharded contiene colecciones como su unidad básica. Los datos de la colección son particionados por la clave de shard. La clave de shard es un campo de la colección. Distribuye los datos de manera uniforme entre shards. Si no selecciona una clave de shard adecuada, el rendimiento del clúster puede deteriorarse y el proceso de ejecución de la sentencia de shard puede estar bloqueado.
Una vez que se determina la clave de shard, no se puede cambiar. Si ninguna clave de fragmento es adecuada para el sharding, debe usar una política de sharding y migrar datos a una nueva colección para el sharding.
- Características de las claves de shard apropiadas
- Todas las inserciones, actualizaciones y eliminaciones se distribuyen uniformemente a todos los shards de un clúster.
- La distribución de claves es suficiente.
- Raras consultas de scatter-gather.
Si la clave de shard seleccionada no tiene todas las características anteriores, la escalabilidad de lectura y escritura del clúster se ve afectada. Por ejemplo, si la carga de trabajo de la operación find () se distribuye de manera desigual en los shards, se generarán shards calientes. Del mismo modo, si su carga de escritura (insertos, actualizaciones y eliminaciones) no se distribuye uniformemente en tus shards, entonces podrías terminar con un shard caliente. Por lo tanto, debe ajustar las claves de shard en función de los requisitos de servicio, como el estado de lectura/escritura, los datos consultados con frecuencia y los datos escritos.
Después de fragmentar los datos existentes, si filtro archivado de la solicitud de actualización no contiene claves de shard y upsert:true o multi:false, la solicitud de actualización reportará un error y devolverá el mensaje "Un upsert en una colección de shard debe contener la clave de shard y tener la simple intercalación".
- Criterios de juicio
Puede utilizar las dimensiones proporcionadas en Tabla 2 para determinar si las claves de shard seleccionadas cumplen con los requisitos de servicio:
Tabla 2 Claves de shard razonables Criterios de identificación
Descripción
Cardinalidad
La cardinalidad se refiere a la capacidad de dividir trozos. Por ejemplo, si necesita registrar la información del estudiante de una escuela y usar la edad como clave de shard, los datos de los estudiantes de la misma edad se almacenarán en un solo segmento de datos, lo que puede afectar el rendimiento y la capacidad de administración de sus clústeres. Una clave de shard mucho mejor sería el número de estudiante porque es único. Si el número de estudiante se utiliza como una clave de shard, la cardinalidad relativamente grande puede garantizar la distribución uniforme de los datos.
Escribir la distribución
Si se realizan un gran número de operaciones de escritura en el mismo período de tiempo, desea que la carga de escritura se distribuya uniformemente sobre los shards del clúster. Si la política de distribución de datos es sharding por intervalo, una clave de shard monótonamente creciente garantizará que todas las inserciones vayan a un solo shard.
Leer la distribución
De manera similar, si se realizan un gran número de operaciones de lectura en el mismo período, desea que su carga de lectura se distribuya uniformemente sobre los shards en un clúster para utilizar plenamente el rendimiento informático de cada shard.
Lectura dirigida
El router de consulta mongos puede realizar una consulta dirigida (consulta de solo un shard) o una consulta de dispersión/recopilación (consulta todos los shards). La única manera de que los mongos puedan apuntar a un solo shard es tener la clave de shard presente en la consulta. Por lo tanto, debe elegir una clave de shard que estará disponible para su uso en las consultas comunes mientras se ejecuta la aplicación. Si elige una clave de shard sintética y su aplicación no puede usarla durante consultas típicas, todas sus consultas se convertirán en scatter/gather, limitando así su capacidad de escalar la carga de lectura.
Elección de una política de distribución
Un clúster con fragmentos puede almacenar los datos de una colección en varios shards. Puede distribuir datos basados en las claves de shard de los documentos de la colección.
Hay dos políticas de distribución de datos: sharding por rango y sharding por hash. Para más detalles, consulte 3.
A continuación se describen las ventajas y desventajas de los dos métodos.
- Sharding por rango
El sharding basado en rango implica dividir los datos en intervalos contiguos determinados por los valores de clave del shard. Si asume que una clave de shard es una línea estirada desde el infinito positivo y el infinito negativo, cada valor de la clave de shard es la marca en la línea. También puede asumir segmentos pequeños y separados de una línea y que cada fragmento contiene datos de una clave de shard dentro de un rango determinado.
Figura 1 Distribución de datosComo se muestra en la figura anterior, el campo x indica la clave de shard de sharding por rango. El rango de valores es [minKey,maxKey] y el valor es un entero. El rango de valores se puede dividir en múltiples fragmentos, y cada fragmento (normalmente 64 MB) contiene un pequeño segmento de datos. Por ejemplo, el fragmento 1 contiene todos los documentos en el rango [minKey, -75] y todos los datos de cada fragmento se almacenan en el mismo fragmento. Eso significa que cada shard contiene múltiples chunks. Además, los datos de cada shard se almacenan en el servidor de configuración y se distribuyen uniformemente por mongos en función de la carga de trabajo de cada shard.
El sharding por rango puede cumplir fácilmente los requisitos de consulta en un cierto rango. Por ejemplo, si necesita consultar documentos cuya clave de shard está en el rango [-60,20], mongos solo necesita reenviar la solicitud al chunk 2.
Sin embargo, si las claves de shard están en orden ascendente o descendente, es probable que los documentos recién insertados se distribuyan en el mismo chunk, lo que afecta a la expansión de la capacidad de escritura. Por ejemplo, si se usa _id como clave de fragmento, los bits altos de _id generados automáticamente en el clúster son ascendentes.
- Sharding por hash
El sharding por hash calcula el valor hash (entero de 64 bits) de un solo campo como valor de índice; este valor se utiliza como clave de shard para particionar datos en el clúster compartido. El sharding hashed proporciona una distribución de datos más uniforme en el clúster hashed, ya que es posible que los documentos con claves de shard similares no se almacenen en el mismo chunk.
Figura 2 Distribución de datosEl sharding hashed distribuye aleatoriamente documentos a cada chunk, lo que amplía completamente la capacidad de escritura y compensa la deficiencia del rango de shanrding. Sin embargo, las consultas en un cierto rango deben distribuirse a todos los shards de backend para obtener documentos que cumplan las condiciones, lo que resulta en una baja eficiencia de la consulta.