Hi Bryan, Thank you very much for tips. I tested during the day. They are working now.
Hong *Hong Li* *Centric Consulting* *In Balance* (888) 781-7567 office (614) 296-7644 mobile www.centricconsulting.com | @Centric <https://twitter.com/centric> On Mon, Mar 21, 2016 at 8:33 PM, Bryan Bende <[email protected]> wrote: > Hong, > > Glad to hear you are getting started with NiFi! What do your property > names look like on EvaluatJsonPath? > > Typically if you wanted to extract the effective timestamp, event id, and > applicant id from your example json, then you would add properties to > EvaluateJsonPath like the following: > > effectiveTimestamp = $.effectiveTimestamp > eventId = $.event.id > eventApplicantId = $.event.applicant.id > > Then in PutHBaseJson if you want the Row Id to be the event id, followed > by applicant id, followed by timestamp, you could do: > > ${eventId}_${eventApplicantId}_${effectiveTimestamp} > > The above expression with your sample JSON should give you: > > 1e9b91398160471f8b6197ad974e2464_1f4a3862fab54e058305e3c73cc13dd3_ > 2015-12-03T23:17:29.874Z > > Now if you wanted to timestamp to be the long representation instead of > the date string, you could do: > > ${eventId}_${eventApplicantId}_${effectiveTimestamp: > toDate("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"):toNumber()} > > Let us know if this helps. > > -Bryan > > > On Mon, Mar 21, 2016 at 7:54 PM, Hong Li <[email protected]> > wrote: > >> I'm a new user for Nifi, and just started my first Nifi project, where we >> need to move Json messages into HBase. After I read the templates and user >> guide, I see I still need help to learn how to concatenate the values >> pulled out from the Json messages to form a unique row key for HBase tables. >> >> Given the sample message below, I run into errors where I need to create >> the unique keys for HBase by concatenating values pulled from the messages. >> >> { >> "effectiveTimestamp": "2015-12-03T23:17:29.874Z", >> "event": { >> "@class": "events.policy.PolicyCreated", >> "id": "1e9b91398160471f8b6197ad974e2464", >> "ipAddress": "10.8.30.145", >> "policy": { >> "additionalListedInsureds": [], >> "address": { >> "city": "Skokie", >> "county": "Cook", >> "id": "b863190a5bf846858eb372fb5f532fe7", >> "latitude": 42.0101, >> "longitude": -87.75354, >> "state": "IL", >> "street": "5014 Estes Ave", >> "zip": "60077-3520" >> }, >> "applicant": { >> "age": 36, >> "birthDate": "1979-01-12", >> "clientId": "191", >> "creditReport": { >> "id": "ca5ec932d33d444b880c9a43a6eb7c50", >> "reasons": [], >> "referenceNumber": "15317191300474", >> "status": "NoHit" >> }, >> "firstName": "Kathy", >> "gender": "Female", >> "id": "1f4a3862fab54e058305e3c73cc13dd3", >> "lastName": "Bockett", >> "maritalStatus": "Single", >> "middleName": "Sue", >> "ssn": "*******" >> }, >> "channelOfOrigin": "PublicWebsite", >> ... ... >> >> For example, in processor EvaluateJsonPath, I could pull out individual >> values as shown below: >> >> $.effectiveTimestamp >> $.event.id >> $.event.applicant.id >> >> >> However, when I tried to create the HBase row key there such as >> >> ${allAttributes($.event.id, >> $event.applicant.id):join($.effectiveTimestamp:toDate('MMM >> d HH:mm:ss'):toString()}_${uuid} >> >> >> I could not make it work no matter how I modified or simplified the long >> string. I must have misunderstood something here. I don't know if this >> question has already been asked and answered. >> >> Thank you for your help. >> Hong >> >> >> *Hong Li* >> >> *Centric Consulting* >> >> *In Balance* >> (888) 781-7567 office >> (614) 296-7644 mobile >> www.centricconsulting.com | @Centric <https://twitter.com/centric> >> > >
