Giter Club home page Giter Club logo

amazon-kinesis-aggregators's Issues

DefaultIdempotencyCheck doesn't actually do anything

The README documents the lastWriteSeq field in the aggregated DynamoDB table, so my impression was that this consumer application implements an idempotency mechanism to handle the scaling and failover cases in a KCL application.

However while browsing the source, I noticed that DefaultIdempotencyCheck's doProcess method returns true unconditionally, and looks like a placeholder implementation of IIdempotencyCheck.

I'm not clear if a full implementation of IIdempotencyCheck was simply omitted by mistake, or if the framework intends for the user to provide her own implementation. If a full implementation that uses lastWriteSeq was omitted, it should be added. If the framework intends for the user to supply an implementation, it should be documented as such.

Without one or the other, users may be lead to believe the aggregators are safe to use in scaling and failover scenarios when they're not.

Dynamo tables created in wrong region.

I have an EC2 instance running an aggregator app. It reads fine from a Kinesis Stream but the aggregated tables are generated in an incorrect region.
How do I specify the region of the DynamoDB tables?

BTW, the KCL app is creating tables in the right region.

SEVERE error when creating cloud watch metrics

I have just cloned the repo as of yesterday, and am trying to run the JAR file directly via command line on my local laptop (for testing).

I have configured the JSON config file to aggregate on MINNUTE, HOUR and FOREVER (see below)

[
{
"namespace":"TestJsonConfigApp",
"labelItems":["EmailAddress"],
"type":"COUNT",
"timeHorizons":["MINUTE","HOUR", "FOREVER"],
"dataExtractor":"JSON",
"dateItem":"EventDateTime",
"tableName":"TestTable",
"emitMetrics" : true,
"readIOPS":20,
"writeIOPS":40,
"IDataStore":"com.amazonaws.services.kinesis.aggregators.datastore.DevNullDataStore"
}
]

I have then added some events through the KCL libraries (which works fine), then I can see errors in the aggregator logs saying:

Unable to Parse Date Value H-1970-01-18 02:00:00

I can see this value in the DynamoDB table, but it looks like the data that the aggregator adds, not from me... what am I doing wrong?

The same happens for the minute aggregations, such as m-1970-01-18 ...

Publish to maven repository

As far as I can see current distribution jars are not published to Maven central repository. Are there any plans to do this?

NoSuchMethodError: com.amazonaws.transform.JsonUnmarshallerContext.getCurrentToken()

From https://forums.aws.amazon.com/thread.jspa?messageID=585971:

Generating Sensor 1
Exception in thread "main" java.lang.NoSuchMethodError: com.amazonaws.transform.JsonUnmarshallerContext.getCurrentToken()Lcom/fasterxml/jackson/core/JsonToken;
at com.amazonaws.services.kinesis.model.transform.PutRecordResultJsonUnmarshaller.unmarshall(PutRecordResultJsonUnmarshaller.java:40)
at com.amazonaws.services.kinesis.model.transform.PutRecordResultJsonUnmarshaller.unmarshall(PutRecordResultJsonUnmarshaller.java:31)
at com.amazonaws.http.JsonResponseHandler.handle(JsonResponseHandler.java:104)
at com.amazonaws.http.JsonResponseHandler.handle(JsonResponseHandler.java:41)
at com.amazonaws.http.AmazonHttpClient.handleResponse(AmazonHttpClient.java:730)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:417)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:245)
at com.amazonaws.services.kinesis.AmazonKinesisClient.invoke(AmazonKinesisClient.java:2326)
at com.amazonaws.services.kinesis.AmazonKinesisClient.putRecord(AmazonKinesisClient.java:557)
at producer.SensorReadingProducer.run(SensorReadingProducer.java:151)
at producer.SensorReadingProducer.main(SensorReadingProducer.java:167)

Feature / Request for comment

Couple of ideas, In terms of the as you put it, more common "Querying for Data by Date"
What do think about an optional consistent read on the aggregate data like dateQuery?consistent=true
Any thoughts about being able to configure additional indexes in configuration, to query externally?
Or related suggestions for coordinating additional processing on the aggregate data; Just wondering...

FOREVER timeHorizon seems to set dateValue to * and issues this error...

17-Jun-2015 20:19:15.970 SEVERE [pool-1-thread-1] com.amazonaws.services.kinesis.aggregators.cache.AggregateCache.flush Metrics Emitter Exception - Aggregate Cache will NOT terminate
17-Jun-2015 20:19:15.970 SEVERE [pool-1-thread-1] com.amazonaws.services.kinesis.aggregators.cache.AggregateCache.flush java.text.ParseException: Unparseable date: "*"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.