"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6866],{15680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>g});var r=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=l(n),d=a,g=m["".concat(p,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(g,i(i({ref:t},c),{},{components:n})):r.createElement(g,i({ref:t},c))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[m]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},36156:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var r=n(58168),a=n(98587),o=(n(96540),n(15680)),i=["components"],s={id:"protobuf",title:"Protobuf"},p=void 0,l={unversionedId:"development/extensions-core/protobuf",id:"development/extensions-core/protobuf",title:"Protobuf",description:"\x3c!--",source:"@site/docs/latest/development/extensions-core/protobuf.md",sourceDirName:"development/extensions-core",slug:"/development/extensions-core/protobuf",permalink:"/docs/latest/development/extensions-core/protobuf",draft:!1,tags:[],version:"current",frontMatter:{id:"protobuf",title:"Protobuf"}},c={},m=[{value:"Example: Load Protobuf messages from Kafka",id:"example-load-protobuf-messages-from-kafka",level:2},{value:"Proto file",id:"proto-file",level:3},{value:"When using a descriptor file",id:"when-using-a-descriptor-file",level:3},{value:"When using Schema Registry",id:"when-using-schema-registry",level:3},{value:"Create Kafka Supervisor",id:"create-kafka-supervisor",level:2},{value:"When using a descriptor file",id:"when-using-a-descriptor-file-1",level:3},{value:"When using Schema Registry",id:"when-using-schema-registry-1",level:3},{value:"Adding Protobuf messages to Kafka",id:"adding-protobuf-messages-to-kafka",level:2},{value:"Generating the example files",id:"generating-the-example-files",level:2},{value:"<code>metrics.desc</code>",id:"metricsdesc",level:3},{value:"<code>metrics_pb2.py</code>",id:"metrics_pb2py",level:3},{value:"<code>pb_publisher.py</code>",id:"pb_publisherpy",level:3}],u={toc:m},d="wrapper";function g(e){var t=e.components,n=(0,a.A)(e,i);return(0,o.yg)(d,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"This Apache Druid extension enables Druid to ingest and understand the Protobuf data format. Make sure to ",(0,o.yg)("a",{parentName:"p",href:"/docs/latest/configuration/extensions#loading-extensions"},"include")," ",(0,o.yg)("inlineCode",{parentName:"p"},"druid-protobuf-extensions")," in the extensions load list."),(0,o.yg)("p",null,"The ",(0,o.yg)("inlineCode",{parentName:"p"},"druid-protobuf-extensions")," provides the ",(0,o.yg)("a",{parentName:"p",href:"/docs/latest/ingestion/data-formats#protobuf-parser"},"Protobuf Parser"),"\nfor ",(0,o.yg)("a",{parentName:"p",href:"/docs/latest/ingestion/#streaming"},"stream ingestion"),". See corresponding docs for details."),(0,o.yg)("h2",{id:"example-load-protobuf-messages-from-kafka"},"Example: Load Protobuf messages from Kafka"),(0,o.yg)("p",null,"This example demonstrates how to load Protobuf messages from Kafka.  Please read the ",(0,o.yg)("a",{parentName:"p",href:"/docs/latest/tutorials/tutorial-kafka"},"Load from Kafka tutorial")," first, and see ",(0,o.yg)("a",{parentName:"p",href:"/docs/latest/ingestion/kafka-ingestion"},"Kafka Indexing Service")," documentation for more details."),(0,o.yg)("p",null,"The files used in this example are found at ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/apache/druid/tree/master/examples/quickstart/protobuf"},(0,o.yg)("inlineCode",{parentName:"a"},"./examples/quickstart/protobuf")," in your Druid directory"),"."),(0,o.yg)("p",null,"For this example:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Kafka broker host is ",(0,o.yg)("inlineCode",{parentName:"li"},"localhost:9092")),(0,o.yg)("li",{parentName:"ul"},"Kafka topic is ",(0,o.yg)("inlineCode",{parentName:"li"},"metrics_pb")),(0,o.yg)("li",{parentName:"ul"},"Datasource name is ",(0,o.yg)("inlineCode",{parentName:"li"},"metrics-protobuf"))),(0,o.yg)("p",null,"Here is a JSON example of the 'metrics' data schema used in the example."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "unit": "milliseconds",\n  "http_method": "GET",\n  "value": 44,\n  "timestamp": "2017-04-06T02:36:22Z",\n  "http_code": "200",\n  "page": "/",\n  "metricType": "request/latency",\n  "server": "www1.example.com"\n}\n')),(0,o.yg)("h3",{id:"proto-file"},"Proto file"),(0,o.yg)("p",null,"The corresponding proto file for our 'metrics' dataset looks like this. You can use Protobuf ",(0,o.yg)("inlineCode",{parentName:"p"},"inputFormat")," with a proto file or ",(0,o.yg)("a",{parentName:"p",href:"https://docs.confluent.io/platform/current/schema-registry/index.html"},"Confluent Schema Registry"),"."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},'syntax = "proto3";\nmessage Metrics {\n  string unit = 1;\n  string http_method = 2;\n  int32 value = 3;\n  string timestamp = 4;\n  string http_code = 5;\n  string page = 6;\n  string metricType = 7;\n  string server = 8;\n}\n')),(0,o.yg)("h3",{id:"when-using-a-descriptor-file"},"When using a descriptor file"),(0,o.yg)("p",null,"Next, we use the ",(0,o.yg)("inlineCode",{parentName:"p"},"protoc")," Protobuf compiler to generate the descriptor file and save it as ",(0,o.yg)("inlineCode",{parentName:"p"},"metrics.desc"),". The descriptor file must be either in the classpath or reachable by URL.  In this example the descriptor file was saved at ",(0,o.yg)("inlineCode",{parentName:"p"},"/tmp/metrics.desc"),", however this file is also available in the example files. From your Druid install directory:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"protoc -o /tmp/metrics.desc ./quickstart/protobuf/metrics.proto\n")),(0,o.yg)("h3",{id:"when-using-schema-registry"},"When using Schema Registry"),(0,o.yg)("p",null,"Make sure your Schema Registry version is later than 5.5. Next, we can post a schema to add it to the registry:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},'POST /subjects/test/versions HTTP/1.1\nHost: schemaregistry.example1.com\nAccept: application/vnd.schemaregistry.v1+json, application/vnd.schemaregistry+json, application/json\n\n{\n    "schemaType": "PROTOBUF",\n    "schema": "syntax = \\"proto3\\";\\nmessage Metrics {\\n  string unit = 1;\\n  string http_method = 2;\\n  int32 value = 3;\\n string timestamp = 4;\\n string http_code = 5;\\n string page = 6;\\n string metricType = 7;\\n string server = 8;\\n}\\n"\n}\n')),(0,o.yg)("p",null,"This feature uses Confluent's Protobuf provider which is not included in the Druid distribution and must be installed separately. You can fetch it and its dependencies from the Confluent repository and Maven Central at: "),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://packages.confluent.io/maven/io/confluent/kafka-protobuf-provider/6.0.1/kafka-protobuf-provider-6.0.1.jar"},"https://packages.confluent.io/maven/io/confluent/kafka-protobuf-provider/6.0.1/kafka-protobuf-provider-6.0.1.jar")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.0/kotlin-stdlib-1.4.0.jar"},"https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.0/kotlin-stdlib-1.4.0.jar")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://repo1.maven.org/maven2/com/squareup/wire/wire-schema/3.2.2/wire-schema-3.2.2.jar"},"https://repo1.maven.org/maven2/com/squareup/wire/wire-schema/3.2.2/wire-schema-3.2.2.jar"))),(0,o.yg)("p",null,"Copy or symlink those files inside the folder ",(0,o.yg)("inlineCode",{parentName:"p"},"extensions/protobuf-extensions")," under the distribution root directory."),(0,o.yg)("h2",{id:"create-kafka-supervisor"},"Create Kafka Supervisor"),(0,o.yg)("p",null,"Below is the complete Supervisor spec JSON to be submitted to the Overlord.\nMake sure these keys are properly configured for successful ingestion."),(0,o.yg)("h3",{id:"when-using-a-descriptor-file-1"},"When using a descriptor file"),(0,o.yg)("p",null,"Important supervisor properties"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.descriptor")," for the descriptor file URL"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.protoMessageType")," from the proto definition"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.type")," set to ",(0,o.yg)("inlineCode",{parentName:"li"},"file"),", indicate use descriptor file to decode Protobuf file"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"inputFormat")," should have ",(0,o.yg)("inlineCode",{parentName:"li"},"type")," set to ",(0,o.yg)("inlineCode",{parentName:"li"},"protobuf"))),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n"type": "kafka",\n"spec": {\n    "dataSchema": {\n        "dataSource": "metrics-protobuf",\n        "timestampSpec": {\n            "column": "timestamp",\n            "format": "auto"\n        },\n        "dimensionsSpec": {\n            "dimensions": [\n                "unit",\n                "http_method",\n                "http_code",\n                "page",\n                "metricType",\n                "server"\n            ],\n            "dimensionExclusions": [\n                "timestamp",\n                "value"\n            ]\n        },\n        "metricsSpec": [\n            {\n                "name": "count",\n                "type": "count"\n            },\n            {\n                "name": "value_sum",\n                "fieldName": "value",\n                "type": "doubleSum"\n            },\n            {\n                "name": "value_min",\n                "fieldName": "value",\n                "type": "doubleMin"\n            },\n            {\n                "name": "value_max",\n                "fieldName": "value",\n                "type": "doubleMax"\n            }\n        ],\n        "granularitySpec": {\n            "type": "uniform",\n            "segmentGranularity": "HOUR",\n            "queryGranularity": "NONE"\n        }\n    },\n    "tuningConfig": {\n        "type": "kafka",\n        "maxRowsPerSegment": 5000000\n    },\n    "ioConfig": {\n        "topic": "metrics_pb",\n        "consumerProperties": {\n            "bootstrap.servers": "localhost:9092"\n        },\n        "inputFormat": {\n            "type": "protobuf",\n            "protoBytesDecoder": {\n                "type": "file",\n                "descriptor": "file:///tmp/metrics.desc",\n                "protoMessageType": "Metrics"\n            },\n            "flattenSpec": {\n                "useFieldDiscovery": true\n            },\n            "binaryAsString": false\n        },\n        "taskCount": 1,\n        "replicas": 1,\n        "taskDuration": "PT1H",\n        "type": "kafka"\n    }\n}\n}\n')),(0,o.yg)("p",null,"To adopt to old version. You can use old parser style, which also works."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "parser": {\n    "type": "protobuf",\n    "descriptor": "file:///tmp/metrics.desc",\n    "protoMessageType": "Metrics"\n  }\n}\n')),(0,o.yg)("h3",{id:"when-using-schema-registry-1"},"When using Schema Registry"),(0,o.yg)("p",null,"Important supervisor properties"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.url")," for the schema registry URL with single instance."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.urls")," for the schema registry URLs with multi instances."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.capacity")," capacity for schema registry cached schemas."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.config")," to send additional configurations, configured for Schema Registry."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.headers")," to send headers to the Schema Registry."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"protoBytesDecoder.type")," set to ",(0,o.yg)("inlineCode",{parentName:"li"},"schema_registry"),", indicate use schema registry to decode Protobuf file."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"parser")," should have ",(0,o.yg)("inlineCode",{parentName:"li"},"type")," set to ",(0,o.yg)("inlineCode",{parentName:"li"},"protobuf"),", but note that the ",(0,o.yg)("inlineCode",{parentName:"li"},"format")," of the ",(0,o.yg)("inlineCode",{parentName:"li"},"parseSpec")," must be ",(0,o.yg)("inlineCode",{parentName:"li"},"json"),".")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-json"},'{\n  "parser": {\n    "type": "protobuf",\n    "protoBytesDecoder": {\n      "urls": ["http://schemaregistry.example1.com:8081","http://schemaregistry.example2.com:8081"],\n      "type": "schema_registry",\n      "capacity": 100,\n      "config" : {\n           "basic.auth.credentials.source": "USER_INFO",\n           "basic.auth.user.info": "fred:letmein",\n           "schema.registry.ssl.truststore.location": "/some/secrets/kafka.client.truststore.jks",\n           "schema.registry.ssl.truststore.password": "<password>",\n           "schema.registry.ssl.keystore.location": "/some/secrets/kafka.client.keystore.jks",\n           "schema.registry.ssl.keystore.password": "<password>",\n           "schema.registry.ssl.key.password": "<password>",\n             ... \n      },\n      "headers": {\n          "traceID" : "b29c5de2-0db4-490b-b421",\n          "timeStamp" : "1577191871865",\n          ...\n      }\n    }\n  }\n}\n')),(0,o.yg)("h2",{id:"adding-protobuf-messages-to-kafka"},"Adding Protobuf messages to Kafka"),(0,o.yg)("p",null,"If necessary, from your Kafka installation directory run the following command to create the Kafka topic"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic metrics_pb\n")),(0,o.yg)("p",null,"This example script requires ",(0,o.yg)("inlineCode",{parentName:"p"},"protobuf")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"kafka-python")," modules. With the topic in place, messages can be inserted running the following command from your Druid installation directory"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"./bin/generate-example-metrics | python /quickstart/protobuf/pb_publisher.py\n")),(0,o.yg)("p",null,"You can confirm that data has been inserted to your Kafka topic using the following command from your Kafka installation directory"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"./bin/kafka-console-consumer --zookeeper localhost --topic metrics_pb\n")),(0,o.yg)("p",null,"which should print messages like this"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},'millisecondsGETR"2017-04-06T03:23:56Z*2002/list:request/latencyBwww1.example.com\n')),(0,o.yg)("p",null,"If your supervisor created in the previous step is running, the indexing tasks should begin producing the messages and the data will soon be available for querying in Druid."),(0,o.yg)("h2",{id:"generating-the-example-files"},"Generating the example files"),(0,o.yg)("p",null,"The files provided in the example quickstart can be generated in the following manner starting with only ",(0,o.yg)("inlineCode",{parentName:"p"},"metrics.proto"),"."),(0,o.yg)("h3",{id:"metricsdesc"},(0,o.yg)("inlineCode",{parentName:"h3"},"metrics.desc")),(0,o.yg)("p",null,"The descriptor file is generated using ",(0,o.yg)("inlineCode",{parentName:"p"},"protoc")," Protobuf compiler. Given a ",(0,o.yg)("inlineCode",{parentName:"p"},".proto")," file, a ",(0,o.yg)("inlineCode",{parentName:"p"},".desc")," file can be generated like so."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"protoc -o metrics.desc metrics.proto\n")),(0,o.yg)("h3",{id:"metrics_pb2py"},(0,o.yg)("inlineCode",{parentName:"h3"},"metrics_pb2.py")),(0,o.yg)("p",null,(0,o.yg)("inlineCode",{parentName:"p"},"metrics_pb2.py")," is also generated with ",(0,o.yg)("inlineCode",{parentName:"p"},"protoc")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"}," protoc -o metrics.desc metrics.proto --python_out=.\n")),(0,o.yg)("h3",{id:"pb_publisherpy"},(0,o.yg)("inlineCode",{parentName:"h3"},"pb_publisher.py")),(0,o.yg)("p",null,"After ",(0,o.yg)("inlineCode",{parentName:"p"},"metrics_pb2.py")," is generated, another script can be constructed to parse JSON data, convert it to Protobuf, and produce to a Kafka topic"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-python"},"#!/usr/bin/env python\n\nimport sys\nimport json\n\nfrom kafka import KafkaProducer\nfrom metrics_pb2 import Metrics\n\n\nproducer = KafkaProducer(bootstrap_servers='localhost:9092')\ntopic = 'metrics_pb'\n\nfor row in iter(sys.stdin):\n    d = json.loads(row)\n    metrics = Metrics()\n    for k, v in d.items():\n        setattr(metrics, k, v)\n    pb = metrics.SerializeToString()\n    producer.send(topic, pb)\n\nproducer.flush()\n")))}g.isMDXComponent=!0}}]);