"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3855],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>g});var a=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(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,a,o=function(e,t){if(null==e)return{};var n,a,o={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=a.createContext({}),l=function(e){var t=a.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 a.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=l(n),d=o,g=m["".concat(p,".").concat(d)]||m[d]||u[d]||r;return n?a.createElement(g,i(i({ref:t},c),{},{components:n})):a.createElement(g,i({ref:t},c))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);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:o,i[1]=s;for(var l=2;l<r;l++)i[l]=n[l];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}d.displayName="MDXCreateElement"},24595:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>g,frontMatter:()=>s,metadata:()=>l,toc:()=>m});var a=n(87462),o=n(63366),r=(n(67294),n(3905)),i=["components"],s={id:"tutorial-msq-convert-spec",title:"Convert an ingestion spec for SQL-based ingestion",sidebar_label:"Convert ingestion spec to SQL",description:"How to convert an ingestion spec to a query for SQL-based ingestion in the web console."},p=void 0,l={unversionedId:"tutorials/tutorial-msq-convert-spec",id:"tutorials/tutorial-msq-convert-spec",title:"Convert an ingestion spec for SQL-based ingestion",description:"How to convert an ingestion spec to a query for SQL-based ingestion in the web console.",source:"@site/docs/latest/tutorials/tutorial-msq-convert-spec.md",sourceDirName:"tutorials",slug:"/tutorials/tutorial-msq-convert-spec",permalink:"/docs/latest/tutorials/tutorial-msq-convert-spec",draft:!1,tags:[],version:"current",frontMatter:{id:"tutorial-msq-convert-spec",title:"Convert an ingestion spec for SQL-based ingestion",sidebar_label:"Convert ingestion spec to SQL",description:"How to convert an ingestion spec to a query for SQL-based ingestion in the web console."},sidebar:"docs",previous:{title:"Transform input data",permalink:"/docs/latest/tutorials/tutorial-transform-spec"},next:{title:"Run with Docker",permalink:"/docs/latest/tutorials/docker"}},c={},m=[],u={toc:m},d="wrapper";function g(e){var t=e.components,s=(0,o.Z)(e,i);return(0,r.kt)(d,(0,a.Z)({},u,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"}," This page describes SQL-based batch ingestion using the ",(0,r.kt)("a",{parentName:"p",href:"/docs/latest/multi-stage-query/"},(0,r.kt)("inlineCode",{parentName:"a"},"druid-multi-stage-query")),"\nextension, new in Druid 24.0. Refer to the ",(0,r.kt)("a",{parentName:"p",href:"/docs/latest/ingestion/#batch"},"ingestion methods")," table to determine which\ningestion method is right for you.")),(0,r.kt)("p",null,"If you're already ingesting data with ",(0,r.kt)("a",{parentName:"p",href:"/docs/latest/ingestion/native-batch"},"native batch ingestion"),", you can use the ",(0,r.kt)("a",{parentName:"p",href:"/docs/latest/operations/web-console"},"web console")," to convert the ingestion spec to a SQL query that the multi-stage query task engine can use to ingest data."),(0,r.kt)("p",null,"This tutorial demonstrates how to convert the ingestion spec to a query task in the web console."),(0,r.kt)("p",null,"To convert the ingestion spec to a query task, do the following:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"In the ",(0,r.kt)("strong",{parentName:"p"},"Query")," view of the web console, navigate to the menu bar that includes ",(0,r.kt)("strong",{parentName:"p"},"Run"),".")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Click the ellipsis icon and select ",(0,r.kt)("strong",{parentName:"p"},"Convert ingestion spec to SQL"),".\n",(0,r.kt)("img",{alt:"Convert ingestion spec to SQL",src:n(34273).Z,title:"Convert ingestion spec to SQL",width:"1250",height:"640"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"In the ",(0,r.kt)("strong",{parentName:"p"},"Ingestion spec to covert")," window, insert your ingestion spec. You can use your own spec or the sample ingestion spec provided in the tutorial. The sample spec uses data hosted at ",(0,r.kt)("inlineCode",{parentName:"p"},"https://druid.apache.org/data/wikipedia.json.gz")," and loads it into a table named ",(0,r.kt)("inlineCode",{parentName:"p"},"wikipedia"),":"),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Show the spec"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n  "type": "index_parallel",\n  "spec": {\n    "ioConfig": {\n      "type": "index_parallel",\n      "inputSource": {\n        "type": "http",\n        "uris": [\n          "https://druid.apache.org/data/wikipedia.json.gz"\n        ]\n      },\n      "inputFormat": {\n        "type": "json"\n      }\n    },\n    "tuningConfig": {\n      "type": "index_parallel",\n      "partitionsSpec": {\n        "type": "dynamic"\n      }\n    },\n    "dataSchema": {\n      "dataSource": "wikipedia",\n      "timestampSpec": {\n        "column": "timestamp",\n        "format": "iso"\n      },\n      "dimensionsSpec": {\n        "dimensions": [\n          "isRobot",\n          "channel",\n          "flags",\n          "isUnpatrolled",\n          "page",\n          "diffUrl",\n          {\n            "type": "long",\n            "name": "added"\n          },\n          "comment",\n          {\n            "type": "long",\n            "name": "commentLength"\n          },\n          "isNew",\n          "isMinor",\n          {\n            "type": "long",\n            "name": "delta"\n          },\n          "isAnonymous",\n          "user",\n          {\n            "type": "long",\n            "name": "deltaBucket"\n          },\n          {\n            "type": "long",\n            "name": "deleted"\n          },\n          "namespace",\n          "cityName",\n          "countryName",\n          "regionIsoCode",\n          "metroCode",\n          "countryIsoCode",\n          "regionName"\n        ]\n      },\n      "granularitySpec": {\n        "queryGranularity": "none",\n        "rollup": false,\n        "segmentGranularity": "day"\n      }\n    }\n  }\n}\n')))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Click ",(0,r.kt)("strong",{parentName:"p"},"Submit")," to submit the spec. The web console uses the JSON-based ingestion spec to generate a SQL query that you can use instead. This is what the query looks like for the sample ingestion spec:"),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Show the query"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-sql"},'-- This SQL query was auto generated from an ingestion spec\nREPLACE INTO wikipedia OVERWRITE ALL\nWITH source AS (SELECT * FROM TABLE(\n  EXTERN(\n    \'{"type":"http","uris":["https://druid.apache.org/data/wikipedia.json.gz"]}\',\n    \'{"type":"json"}\',\n    \'[{"name":"timestamp","type":"string"},{"name":"isRobot","type":"string"},{"name":"channel","type":"string"},{"name":"flags","type":"string"},{"name":"isUnpatrolled","type":"string"},{"name":"page","type":"string"},{"name":"diffUrl","type":"string"},{"name":"added","type":"long"},{"name":"comment","type":"string"},{"name":"commentLength","type":"long"},{"name":"isNew","type":"string"},{"name":"isMinor","type":"string"},{"name":"delta","type":"long"},{"name":"isAnonymous","type":"string"},{"name":"user","type":"string"},{"name":"deltaBucket","type":"long"},{"name":"deleted","type":"long"},{"name":"namespace","type":"string"},{"name":"cityName","type":"string"},{"name":"countryName","type":"string"},{"name":"regionIsoCode","type":"string"},{"name":"metroCode","type":"string"},{"name":"countryIsoCode","type":"string"},{"name":"regionName","type":"string"}]\'\n  )\n))\nSELECT\n  TIME_PARSE("timestamp") AS __time,\n  "isRobot",\n  "channel",\n  "flags",\n  "isUnpatrolled",\n  "page",\n  "diffUrl",\n  "added",\n  "comment",\n  "commentLength",\n  "isNew",\n  "isMinor",\n  "delta",\n  "isAnonymous",\n  "user",\n  "deltaBucket",\n  "deleted",\n  "namespace",\n  "cityName",\n  "countryName",\n  "regionIsoCode",\n  "metroCode",\n  "countryIsoCode",\n  "regionName"\nFROM source\nPARTITIONED BY DAY\n')))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Review the generated SQL query to make sure it matches your requirements and does what you expect.")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Click ",(0,r.kt)("strong",{parentName:"p"},"Run")," to start the ingestion."))))}g.isMDXComponent=!0},34273:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/tutorial-msq-convert-3042e5d3f5b8888781ad4d07c246e42a.png"}}]);