¿Cómo puedo cambiar la cantidad de particiones abiertas en Kinesis Data Streams?

6 minutos de lectura
0

Quiero cambiar la cantidad de particiones abiertas en Amazon Kinesis Data Streams y saber qué hacer una vez cambiadas las particiones.

Breve descripción

Una partición puede estar en estado ABIERTA, CERRADA o VENCIDA. Si una partición está en estado ABIERTA, puede agregar y recuperar registros de datos de la partición.

Para cambiar la cantidad de particiones abiertas en Kinesis Data Streams, complete una de las siguientes tareas:

  • Actualice el número total de particiones. Esta acción cambia el número de particiones de la secuencia.
  • Fragmente una sola partición.
  • Combine dos particiones en una sola.

Nota: Si cambia la cantidad de particiones abiertas en su secuencia de datos de Kinesis, ese cambio afectará a los valores del rango de claves hash y a las particiones principales.

Solución

Actualización del número total de particiones

Use la consola de Kinesis o las operaciones de API para actualizar la cantidad de particiones abiertas. Si usa la Consola de administración de AWS, Kinesis Data Streams utilizará la API UpdateShardCount para volver a fragmentar las secuencias. Revise los siguientes puntos sobre la API UpdateShardCount:

  • La API fragmenta o combina particiones individuales en segundo plano para actualizar el recuento de particiones de la secuencia indicada al número de particiones especificado. UpdateShardCount es una llamada a la API en el nivel de secuencia.
  • UpdateShardCount solo admite el escalamiento uniforme. El escalamiento uniforme crea particiones con el mismo porcentaje para el rango de claves hash.
  • La operación UpdateShardCount reajusta el número de particiones a un valor de destino específico; todas las particiones tendrán el mismo tamaño.

Fragmentación de una sola partición

Puede fragmentar en dos una partición «caliente» o «fría».

Nota: Solo puede fragmentar o combinar particiones mediante operaciones de API.

Las particiones que reciben más datos de lo esperado se conocen como particiones «calientes». Utilice la API SplitShard para fragmentar las particiones calientes de forma selectiva y así incrementar la capacidad para las claves hash que tengan dichas particiones como destino. Para obtener más información sobre cómo administrar las particiones calientes, consulte Strategies for resharding.

También puede supervisar el servicio Amazon Kinesis Data Streams con Amazon CloudWatch. Para usar las métricas de CloudWatch con el fin de determinar las particiones «calientes» o «frías», active las métricas en el nivel de partición, por ejemplo, IncomingRecords e IncomingBytes.

Combinación de dos particiones en una

Puede fragmentar en dos una partición «caliente» o «fría».

Nota: Solo puede fragmentar o combinar particiones mediante operaciones de API.

Las particiones que reciben muchos menos datos de lo esperado se conocen como particiones «frías». Utilice la API MergeShards para combinar particiones frías y así utilizar toda su capacidad. Se trata de una llamada a la API en el nivel de partición. Tenga en cuenta que solo puede combinar dos particiones adyacentes, de modo que la unión de sus rangos de claves hash forme un conjunto continuo sin vacíos.

También puede supervisar el servicio Amazon Kinesis Data Streams con Amazon CloudWatch. Utilice métricas de CloudWatch para determinar las particiones «calientes» o «frías»; para ello, active métricas en el nivel de partición, por ejemplo, IncomingRecords e IncomingBytes.

Otros aspectos a tener en cuenta

La partición o el par de particiones a los que afecta la operación de refragmentación se conocen como particiones principales. Las particiones creadas con la operación de refragmentación se conocen como particiones secundarias. Una partición principal también pasa del estado ABIERTA al estado CERRADA y, finalmente, al estado VENCIDA, una vez transcurrido el periodo de retención de la partición. Por este motivo, puede que se asigne el estado ABIERTA a particiones secundarias. Para obtener más información sobre las transiciones de una partición principal, consulte Data routing, data persistence, and shard state after a reshard.

Tras la refragmentación, continúe leyendo los datos de las particiones CERRADAS hasta que estas se agoten. Esto ayuda a preservar el orden de los datos leídos por las aplicaciones consumidoras. Una vez agotadas todas las particiones CERRADAS, lea los datos de las particiones secundarias abiertas. La biblioteca de clientes de Amazon Kinesis (KCL) se ha diseñado de modo que se adapte a las operaciones de refragmentación. Los datos que existían en las particiones antes de la refragmentación se procesan primero. Para obtener más información sobre las operaciones de refragmentación, consulte Resharding, scaling, and parallel processing.

Si cambia el número de particiones abiertas, también se pueden producir cambios en los rangos de claves hash de algunas particiones. Un rango de claves hash es el rango de valores posibles de claves hash para una partición, un conjunto de enteros positivos por orden consecutivo. El rango se compone de valores de claves iniciales y finales. Por ejemplo, si crea una secuencia de datos de Kinesis con cinco particiones abiertas, la secuencia se dividirá en 5 partes iguales según el rango de claves hash. Por lo tanto, todas las particiones tienen el 20 % como valor del espacio de claves hash.

Por ejemplo, supongamos que tiene un rango de claves hash de X particiones, desde Shard-1 hasta Shard-X. Puede combinar particiones o fragmentarlas aún más para modificar los rangos:

Consola o API UpdateShardCount API

Si el número de particiones abiertas cambia de 5 a 10, el espacio de claves resultante de las particiones secundarias será del 10 %. El rango de claves hash se divide equitativamente entre todas las particiones abiertas con un valor del 10 %.

API SplitShard

Fragmente la última partición (Shard-5) en dos (Shard-6 y Shard-7). Antes de fragmentar una partición, el espacio de claves de la partición principal es del 20 %. Después de fragmentar la partición, el espacio de claves de las particiones secundarias (Shard-6 y Shard-7) es del 10 %. El rango de claves hash de las particiones principales se divide equitativamente entre las dos particiones secundarias con un valor del 10 %. Por lo tanto, la fragmentación del espacio de claves hash es 20 %-20 %-20 %-20 %-10 %-10 %.

API MergeShards

Combine las dos últimas particiones (Shard-4 y Shard-5) en una sola (Shard-6). El espacio de claves hash de las particiones principales (Shard-4 y Shard-5) es del 20 %. Después de combinar las particiones, el espacio de claves de la partición secundaria (Shard-6) es del 40 %. El rango de claves hash de las particiones principales se suma a las dos particiones secundarias para que sea igual al 40 %. Por lo tanto, la fragmentación del espacio de claves hash es 20 %-20 %-20 %-40 %.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 5 meses