Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Siga estos pasos para crear su flujo de datos de Kinesis.
Crear el cliente de Kinesis Data Streams
Antes de poder trabajar con flujos de datos de Kinesis, debe crear un objeto cliente. El siguiente código Java crea una instancia de un compilador de clientes y la usa para definir la región, las credenciales y la configuración del cliente. A continuación, crea un objeto cliente.
AmazonKinesisClientBuilder clientBuilder = AmazonKinesisClientBuilder.standard(); clientBuilder.setRegion(regionName); clientBuilder.setCredentials(credentialsProvider); clientBuilder.setClientConfiguration(config); AmazonKinesis client = clientBuilder.build();
Para obtener más información, consulte Regiones y puntos de conexión de Kinesis Data Streams en Referencia general de AWS.
Crear la secuencia
Ahora que ya creó su cliente de Kinesis Data Streams, puede crear un flujo mediante la consola o de forma programada. Para crear un flujo de forma programada, cree una instancia de un objeto CreateStreamRequest
y especifique un nombre para el flujo. Si desea usar el modo aprovisionado, debe especificar el número de particiones del flujo que deben usarse.
-
Bajo demanda:
CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName );
-
Aprovisionado:
CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName ); createStreamRequest.setShardCount( myStreamSize );
El nombre de la secuencia identifica la secuencia. El nombre depende de la AWS cuenta utilizada por la aplicación. También se limita a la región. Es decir, dos flujos en dos AWS cuentas diferentes pueden tener el mismo nombre y dos flujos en la misma AWS cuenta pero en dos regiones diferentes pueden tener el mismo nombre, pero no dos flujos en la misma cuenta y en la misma región.
El rendimiento del flujo depende del número de particiones. Para obtener un mayor rendimiento aprovisionado, necesitará más particiones. Si hay más fragmentos, también se incrementa el AWS coste de la transmisión. Para obtener más información sobre cómo calcular un número adecuado de fragmentos para una aplicación, consulte Elegir el modo de capacidad del flujo de datos.
Tras configurar el objeto createStreamRequest
, cree un flujo llamando al método createStream
en el cliente. Después de llamar a createStream
, espere a que la secuencia alcance el estado ACTIVE
antes de realizar cualquier operación en la secuencia. Para comprobar el estado de la secuencia, llame al método describeStream
. Sin embargo, describeStream
arroja una excepción si la secuencia no existe. Por lo tanto, incluya la llamada a describeStream
en un bloque try/catch
.
client.createStream( createStreamRequest );
DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest();
describeStreamRequest.setStreamName( myStreamName );
long startTime = System.currentTimeMillis();
long endTime = startTime + ( 10 * 60 * 1000 );
while ( System.currentTimeMillis() < endTime ) {
try {
Thread.sleep(20 * 1000);
}
catch ( Exception e ) {}
try {
DescribeStreamResult describeStreamResponse = client.describeStream( describeStreamRequest );
String streamStatus = describeStreamResponse.getStreamDescription().getStreamStatus();
if ( streamStatus.equals( "ACTIVE" ) ) {
break;
}
//
// sleep for one second
//
try {
Thread.sleep( 1000 );
}
catch ( Exception e ) {}
}
catch ( ResourceNotFoundException e ) {}
}
if ( System.currentTimeMillis() >= endTime ) {
throw new RuntimeException( "Stream " + myStreamName + " never went active" );
}