Extract the attribute name and its value from file and push into MySQL table












0















I want to extract the attribute name and its value and then further push it into the Database Tables.



The data is as follows:



   enter code here
{"Name":"Sam","Lastname":"Charles","Address":"1103 pioneer St"}
{"housename":"Jake","Lastname":"Stevenson","Address":"Abel St"}
{"foodname":"pudding","Lastname":"luther","Address":"Half Moon Bay"}


How Can i achieve this in NiFi so i can extract these values and push into MySQL? My MySQL table looks like the following:(the output I Expect is as follows):



**Names           Lastname                  Address**

Sam Charles 1103 pioneer St

Jake Stevenson Abel St

Pudding luther Half MoonBay


Any suggestion is appreciated. Thank you. What processor to use and what regex to use to achieve this?










share|improve this question





























    0















    I want to extract the attribute name and its value and then further push it into the Database Tables.



    The data is as follows:



       enter code here
    {"Name":"Sam","Lastname":"Charles","Address":"1103 pioneer St"}
    {"housename":"Jake","Lastname":"Stevenson","Address":"Abel St"}
    {"foodname":"pudding","Lastname":"luther","Address":"Half Moon Bay"}


    How Can i achieve this in NiFi so i can extract these values and push into MySQL? My MySQL table looks like the following:(the output I Expect is as follows):



    **Names           Lastname                  Address**

    Sam Charles 1103 pioneer St

    Jake Stevenson Abel St

    Pudding luther Half MoonBay


    Any suggestion is appreciated. Thank you. What processor to use and what regex to use to achieve this?










    share|improve this question



























      0












      0








      0








      I want to extract the attribute name and its value and then further push it into the Database Tables.



      The data is as follows:



         enter code here
      {"Name":"Sam","Lastname":"Charles","Address":"1103 pioneer St"}
      {"housename":"Jake","Lastname":"Stevenson","Address":"Abel St"}
      {"foodname":"pudding","Lastname":"luther","Address":"Half Moon Bay"}


      How Can i achieve this in NiFi so i can extract these values and push into MySQL? My MySQL table looks like the following:(the output I Expect is as follows):



      **Names           Lastname                  Address**

      Sam Charles 1103 pioneer St

      Jake Stevenson Abel St

      Pudding luther Half MoonBay


      Any suggestion is appreciated. Thank you. What processor to use and what regex to use to achieve this?










      share|improve this question
















      I want to extract the attribute name and its value and then further push it into the Database Tables.



      The data is as follows:



         enter code here
      {"Name":"Sam","Lastname":"Charles","Address":"1103 pioneer St"}
      {"housename":"Jake","Lastname":"Stevenson","Address":"Abel St"}
      {"foodname":"pudding","Lastname":"luther","Address":"Half Moon Bay"}


      How Can i achieve this in NiFi so i can extract these values and push into MySQL? My MySQL table looks like the following:(the output I Expect is as follows):



      **Names           Lastname                  Address**

      Sam Charles 1103 pioneer St

      Jake Stevenson Abel St

      Pudding luther Half MoonBay


      Any suggestion is appreciated. Thank you. What processor to use and what regex to use to achieve this?







      apache apache-nifi data-extraction






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 2 at 23:24







      shrads

















      asked Jan 2 at 21:32









      shradsshrads

      1358




      1358
























          1 Answer
          1






          active

          oldest

          votes


















          2














          You can use PutDatabaseRecord for this, if the field names match the column names (which they appear to) then PutDatabaseRecord will generate the correct SQL to do an INSERT statement. If your input data is one JSON per line, you'll need at least NiFi 1.7.0 (for NIFI-4456). You can configure a JsonTreeReader with the following schema (to match your input data and target columns):



          {
          "namespace": "nifi",
          "name": "myRecord",
          "type": "record",
          "fields": [
          {"name": "Name", "type": "string"},
          {"name": "Lastname", "type": "string"},
          {"name": "Address", "type": "string"}
          ]
          }


          If there can be null values in the data, then replace "type": "string" with "type": ["null", "string"]






          share|improve this answer
























          • Thank You for replying. I have updated my question. Actually the first field in the data is not the same i.e. the first field in each record changes. Please see the updated question. Can you tell what changes required now??

            – shrads
            Jan 2 at 23:24











          • You should be able to use UpdateRecord to change the name of the field from Name to Names, then send the updated JSON into PutDatabaseRecord

            – mattyb
            Jan 3 at 21:42












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54013435%2fextract-the-attribute-name-and-its-value-from-file-and-push-into-mysql-table%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2














          You can use PutDatabaseRecord for this, if the field names match the column names (which they appear to) then PutDatabaseRecord will generate the correct SQL to do an INSERT statement. If your input data is one JSON per line, you'll need at least NiFi 1.7.0 (for NIFI-4456). You can configure a JsonTreeReader with the following schema (to match your input data and target columns):



          {
          "namespace": "nifi",
          "name": "myRecord",
          "type": "record",
          "fields": [
          {"name": "Name", "type": "string"},
          {"name": "Lastname", "type": "string"},
          {"name": "Address", "type": "string"}
          ]
          }


          If there can be null values in the data, then replace "type": "string" with "type": ["null", "string"]






          share|improve this answer
























          • Thank You for replying. I have updated my question. Actually the first field in the data is not the same i.e. the first field in each record changes. Please see the updated question. Can you tell what changes required now??

            – shrads
            Jan 2 at 23:24











          • You should be able to use UpdateRecord to change the name of the field from Name to Names, then send the updated JSON into PutDatabaseRecord

            – mattyb
            Jan 3 at 21:42
















          2














          You can use PutDatabaseRecord for this, if the field names match the column names (which they appear to) then PutDatabaseRecord will generate the correct SQL to do an INSERT statement. If your input data is one JSON per line, you'll need at least NiFi 1.7.0 (for NIFI-4456). You can configure a JsonTreeReader with the following schema (to match your input data and target columns):



          {
          "namespace": "nifi",
          "name": "myRecord",
          "type": "record",
          "fields": [
          {"name": "Name", "type": "string"},
          {"name": "Lastname", "type": "string"},
          {"name": "Address", "type": "string"}
          ]
          }


          If there can be null values in the data, then replace "type": "string" with "type": ["null", "string"]






          share|improve this answer
























          • Thank You for replying. I have updated my question. Actually the first field in the data is not the same i.e. the first field in each record changes. Please see the updated question. Can you tell what changes required now??

            – shrads
            Jan 2 at 23:24











          • You should be able to use UpdateRecord to change the name of the field from Name to Names, then send the updated JSON into PutDatabaseRecord

            – mattyb
            Jan 3 at 21:42














          2












          2








          2







          You can use PutDatabaseRecord for this, if the field names match the column names (which they appear to) then PutDatabaseRecord will generate the correct SQL to do an INSERT statement. If your input data is one JSON per line, you'll need at least NiFi 1.7.0 (for NIFI-4456). You can configure a JsonTreeReader with the following schema (to match your input data and target columns):



          {
          "namespace": "nifi",
          "name": "myRecord",
          "type": "record",
          "fields": [
          {"name": "Name", "type": "string"},
          {"name": "Lastname", "type": "string"},
          {"name": "Address", "type": "string"}
          ]
          }


          If there can be null values in the data, then replace "type": "string" with "type": ["null", "string"]






          share|improve this answer













          You can use PutDatabaseRecord for this, if the field names match the column names (which they appear to) then PutDatabaseRecord will generate the correct SQL to do an INSERT statement. If your input data is one JSON per line, you'll need at least NiFi 1.7.0 (for NIFI-4456). You can configure a JsonTreeReader with the following schema (to match your input data and target columns):



          {
          "namespace": "nifi",
          "name": "myRecord",
          "type": "record",
          "fields": [
          {"name": "Name", "type": "string"},
          {"name": "Lastname", "type": "string"},
          {"name": "Address", "type": "string"}
          ]
          }


          If there can be null values in the data, then replace "type": "string" with "type": ["null", "string"]







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 2 at 21:56









          mattybmattyb

          7,7861018




          7,7861018













          • Thank You for replying. I have updated my question. Actually the first field in the data is not the same i.e. the first field in each record changes. Please see the updated question. Can you tell what changes required now??

            – shrads
            Jan 2 at 23:24











          • You should be able to use UpdateRecord to change the name of the field from Name to Names, then send the updated JSON into PutDatabaseRecord

            – mattyb
            Jan 3 at 21:42



















          • Thank You for replying. I have updated my question. Actually the first field in the data is not the same i.e. the first field in each record changes. Please see the updated question. Can you tell what changes required now??

            – shrads
            Jan 2 at 23:24











          • You should be able to use UpdateRecord to change the name of the field from Name to Names, then send the updated JSON into PutDatabaseRecord

            – mattyb
            Jan 3 at 21:42

















          Thank You for replying. I have updated my question. Actually the first field in the data is not the same i.e. the first field in each record changes. Please see the updated question. Can you tell what changes required now??

          – shrads
          Jan 2 at 23:24





          Thank You for replying. I have updated my question. Actually the first field in the data is not the same i.e. the first field in each record changes. Please see the updated question. Can you tell what changes required now??

          – shrads
          Jan 2 at 23:24













          You should be able to use UpdateRecord to change the name of the field from Name to Names, then send the updated JSON into PutDatabaseRecord

          – mattyb
          Jan 3 at 21:42





          You should be able to use UpdateRecord to change the name of the field from Name to Names, then send the updated JSON into PutDatabaseRecord

          – mattyb
          Jan 3 at 21:42




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54013435%2fextract-the-attribute-name-and-its-value-from-file-and-push-into-mysql-table%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith