From af70290998ea53a5a3e0a17e6787c844885fa1e6 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 7 Dec 2023 23:14:33 +0100 Subject: [PATCH] Add "CrateDB" utility plugin --- _data/default_variants.yml | 1 + _data/maintainers.yml | 4 ++ _data/meltano/utilities/cratedb/cratedb.yml | 42 ++++++++++++++++++++ static/assets/logos/utilities/cratedb.png | Bin 0 -> 28382 bytes 4 files changed, 47 insertions(+) create mode 100644 _data/meltano/utilities/cratedb/cratedb.yml create mode 100644 static/assets/logos/utilities/cratedb.png diff --git a/_data/default_variants.yml b/_data/default_variants.yml index cd1359822..5766884fd 100644 --- a/_data/default_variants.yml +++ b/_data/default_variants.yml @@ -664,6 +664,7 @@ transforms: utilities: airflow: apache clickhouse: clickhouse + cratedb: cratedb cron: meltano dagster: quantile-development datahub: datahub-project diff --git a/_data/maintainers.yml b/_data/maintainers.yml index 8db20c480..4292170dd 100644 --- a/_data/maintainers.yml +++ b/_data/maintainers.yml @@ -46,6 +46,10 @@ alvaroraul7: label: alvaroraul7 name: alvaroraul7 url: https://github.com/AlvaroRaul7 +amotl: + label: Andreas Motl + name: amotl + url: https://github.com/amotl andrejakobsen: label: Kristian André Jakobsen name: andrejakobsen diff --git a/_data/meltano/utilities/cratedb/cratedb.yml b/_data/meltano/utilities/cratedb/cratedb.yml new file mode 100644 index 000000000..e287100e0 --- /dev/null +++ b/_data/meltano/utilities/cratedb/cratedb.yml @@ -0,0 +1,42 @@ +capabilities: [] +commands: + start: + args: start + container_spec: + image: crate:5.5 + ports: + '4200': 4200/tcp + '5433': 5432/tcp + volumes: + - $MELTANO_PROJECT_ROOT/.meltano/utilities/cratedb/data:/data +definition: is a containerized instance of CrateDB useful for local development. +description: CrateDB is a distributed and scalable SQL database for storing and analyzing + massive amounts of data in near real-time, even with complex queries. It is PostgreSQL-compatible, + and based on Lucene. +docs: https://cratedb.com/ +domain_url: https://cratedb.com/ +keywords: +- warehouse +label: CrateDB +logo_url: /assets/logos/utilities/cratedb.png +maintenance_status: active +name: cratedb +namespace: cratedb +next_steps: | + 1. Launch CrateDB: + + ```sh + meltano invoke --containers cratedb:start + ``` + + Connect with your PostgreSQL client at `postgresql://crate@localhost:5433/`, + use SQLAlchemy with `crate://crate@localhost:4200/`, or use CrateDB shell + like `crash --host localhost:4200`. +prereq: | + #### Dependencies + + CrateDB is packaged as a Docker image so you must have Docker installed before running the plugin. +repo: https://github.com/crate/crate +settings: [] +settings_group_validation: [] +variant: cratedb diff --git a/static/assets/logos/utilities/cratedb.png b/static/assets/logos/utilities/cratedb.png new file mode 100644 index 0000000000000000000000000000000000000000..41b411d0e60921554aa074c322e93b43583f51b6 GIT binary patch literal 28382 zcmeFZc{G*X8vweGF;W^7B2aQ0pLA@{=<2uNV`LzoTjRd-0to!{0idg{_lU$Z|t-8 z=zqWd9r=I#>1A&l2qDMZwA8i1AvQLCei<1}V<$ZRMPe?2&^ol}VX0LQfCG!t)hjxl zJ#*b}58%Ne0wIWuxTAfCU>qILUfoX}X~fx6yk0T;Mv?qj<**b5wg#T{2Iaqtg;@Uk zW#D2wZttt&f3PE?jC&yb7tg(!fKA~49|mRe|4JbEpvw}+ksuky94|kvNI49@=05(P z;E(^NLC*jnoc^C^^}h)2fxy%M$=&!c@n6t|k^d=0P7+xo{QUpO0Qi5DS)Qvx`hka< zK<>6YhbDFZuKfNF-y_CSx9b`1Y*B!oyT23%*C`=7Ac{y+X^Om71~aisS;D~*bK zvOhT}&sfuc9CJW2%yfTAKFjsg!yv24KpbrSERqfV_*IX@eX8x02*{b`Iey22R3n+E z5SL%cB2Z@@a~bGAU8Di@DX%`*IXENrOKLv7ox05Yy~Zz_<0R?o7xg9D&w?O1Qtuct zFucS!$`Gl#=)p?g6!HJdFn%fOMl zW0HDs`k^=!c+^uO9$S4dryw}67G|jwxous5^ETsaZ>XS&PQZx%aE!GlQ`fg~Ez?Zm z^oHk&q)*8gC8HZ%2-qLsN5_w5XvvQ+aepn;8%J5`A_@& zCzhZ`h=?(sC^ve%(tmTN+A{H-bMIDev?oR4<^CHVf1#k!nth7J{L&iDRyA#-1bl+` z7m)jo6p`p98!}k6JyQW^ovIzI^i~{zA;tc2-CGG{GmB>qA0vJwxf^=Z>kBWNB&m~Q zzeO7rd;lDeTziItEA75)lBObpzV2N5+qooYN=G?_oddc&>2?lDk1TkNoC~nF?eqnCh@r<+23e9f(FZ+CONnG z>9izi>-+UQvCjzf;xRry#>L@Jm}2oNFw}@zV!#G^Q?yv}rhoebE!j!zDNio~Zn0e^ zwJeDEu)q0mJgy}A)Y(*e1U{y=9!(-6XWRXctzkc@6Hn#>MnIaqc#mPoeo3_|k>XF< zo)kmMfu^o*h&0VXtyK#8Q4$TIh_iAM<=SZ8h`sI226d z)Y7j$q{AVDjg`Yt8F^W68F?3RCBdbh{m5GImM2zgj?rmqS6zN>Fvbn3J?!Idg;rTK z(^i)SX_j^tgGCa)fY&5mm*`Pc$4-r^vgH>cbY{Y z81QxE&~6q5R55r%mn^B|5knOh@GKQrFam$W-y$n}I=j?gg~L>veCIa_^Wr60q$hfj zlOiWD;*~Zc4qPTZw$kf7dixlha5Of5a?b!IT}xLyPcOQ(g4IrSE9-kU2Y=JY;~3gz4KP_zyE>!JB_*goON;61X8^Q~kSGadjld;c0w;`+&#B5@e76p&W*SEpl3t zBr$UO)|pFiwZj*RnNZNco88MMQ85URZ@RYFL`wj-qV{88w;}~EiXJi7D9eQ{@Mq0? z0E-LLO$mSCV9p3+hldSa5xp}1EZp>>*hxWjxp{oR#&N4@OsJBDOh}&QfddCtdC)+% z%ywxmlBD(0)8`?ur32FsTaKV3CrNF7%4IF+IU6_JFb-TAW1rvyD|ZxOu$Y>;TNaGw zD?0ex!W}w1Xc%9yO4|BU7&9F9VlJYLM6ZS!J5*#_9#*X_b)=i z2D<{%3&3iuNk1N1*oMI~1j8Shu%yC2&f!50)L*XNc?dyuRg0Hsu72r!Wy!Y#++15Q zmUQ7dvX*5>kr_q#A@2rhvR)J?ls(=-6L9;ubqs+tpTL>E^G{Hid_sA8LbmtOuuGS$QHPIK@o|MKtF zIpSaUN-z-jZu8JPYFa_OmpF zm%qCkXoJK3L9maIt2D;3l&M~Pz=ctw)dQFI1M&=4+?16@&8c*wLt4YoCK^2>~|WNQ?V+lK0I5cl;)^QS&< zvjFZ|%XZ?lG?3%5MKBrqgO(;TFG~aFx8X{1^O#cNx*TyY?tJhMx(_ib`RrfN#D)g{ zo))E1{HW_6jeXg}d=kV{`?ZzYw%Fd|d$~M?X)Cg=>iIrMlMe zUPe%5v=f8O+@%N&!&kQ73dXzZ>@*>b39N}BV4`4FKiu#L=A>$SCz z)2+|S5>UwCGGG3VXibzI6(Exd^l3g%2eTD*Ob0@MKiF&ulGD~t!{U}e$$-`2c#WH@ zkW4+_FgY?XL`s8gb_kP~nV;drUU~bgBRO?p8ucz5Bw?$Ol1qW0;F6y{RG5w`d-Rt- zWyz?_7!~nIl4?G@ZiiNy>h^`J_nw)7exmvLP9$dNMmKHMB3Wn>>c7owV*RM`WR_+}V0;Wvd4q^vw2&latF{ll3Kuz0ve^N)?kqUC zwo!cM3c1C=?EihvzjXU(x{?ibbI5n&xO^&=d%m|}LXwf9=>$T#@jpVK0?zL_%2>@s zvcy{kZ3wiVVY>h`a;f!Wc#2mqEl`lUghBp}j&zB%ei8lvjpzDz|=iw??wdd59XLES5r$gr`{2uGtONrPe}pOOGO{ypqxxl}+# zb2{8kwF<)R4gCBvP{*YS$7v}*I&VKv*rU_c-Hs{EedTLXpS-h;RomXho8Muq{DyD+$Wm9up1#*bhuw{q-5^7ntOhW*$=h@I?gTU zqcy{x`!v=I^1q#zqJWI+r~UYiIi!4iz;hM<&Z3J@39&_3$f7?(B%GcLW{`)Ped~_N zi@}TH{fclPv}S#-J#B9@mCV3}AjlQPz(NTO}X&oXGpI-P~ z{>%Gw?w<;4pXPiP{KIc{Fg?xPd_W_5e&@skNMy*jVZ<|`smy=I)!==;uA}6mFw4JY z&uy<>i`1}mXc)79t8>xf$)s)Zby*Cvj8_0+LJU7guWAGuupAHh8297Gw8E&a3xX{^Z1SUw%FJ!}Zwq6H*XD%&VX$p+UTDE&GZgL?wJ=%E=aWquUA^KIY6u^h-8qUDUG&Nhdc%3tU#pjE zU;b1}s$r!~cgOcw=nPY;SW3%v>&&8e_%zOF@uPD5;vYjfM@W>ZAa*K9Sh^b(@@hoN z^_yT*ibTTF-?Wqvj4Dg)5D-5;+Y%(QR3N-WlW$GCR!_)&JOF8~{g-BTN%ii&I-4=Z z<4F>g3KSVrFg+PxRZ75oDNDnr{`8^k_3c`p?`*OPcNg#cwKL1KE@_asZ7%7@7wbV><%~OZ|`{`$hBCg+X{@|Uo2UZRrV+0 z{M|n=#pX)FastkKe(}%Nd0pT-^Q>4g79MY0%*C`7{bQ4Ry|6@M^}U3#h1$qC44r5= zn3~;j4=wL1JdmRqzq!zZb{x;cQT2*9i;FGqfVpz<$hcU;lmZJd_QHx{e0u*ggAcvD z73L43xKI^~J_PXG^hfBF!AU~jYmpxu{~njpd>4+YuZsc}oyp}&Z=c;l5{sO=u7hSA zI=qnT%j?ZsZuwySZk+;qW(ayLKWdDOlkM(2_pst0GgiV}8D~GyAb3ia6-|OiAf4Mh z<6ld5waNLbe9F#msllZdFZp;x^a;^CGWk<%es=tAP42E7MNg~9DEq|Wcs7S4HtCaD z)n^)a#4%j)Dx)NrIFswsR9kFFN7Ww zo|>mkvSe)Gf!W214%_&k3vX#bt~i!N7jHG>8}#O0Ty{le4u*$|XklNY%zR5bMPNU~ zfqm>>S)PqI;aE-8v2GfNY@!cdq;YvjPeMP)E8*OMQs@jAwAIRMfTCnz@+2yyFbEfs z*DLU6SAzDbz32yIyjohx^&hQUp40g#6PdyU@WeUidP)f?OO7%%<%AIHUfyG#e~j8A zxWBDOFn_M{a}J!iRrG;(VUxS>D&xx^XQ#^_^14WId~+@;CvB8G@RKi}_U^N_M-&xO zIwf@rjoeW%hk~?5{t0oOkgaKv6dFIOORWvA-*`g(^@6$U4Bq{HIx<}q^<(CuquapU z+Dg9uL%sO(YGMf&m0AfL?t?bZ*^(A%Y=18auP`EJOA>xGuZ#A(Gd%TQT}=4ncQ4Pw zvC+Clli`v7tZ@uY#M`m$ggom;d>B~;+ogFSdUZmFddJ$KqAU*kx|{gyD8me3EbyIj za=Ll#$jZ6%w`bPR0nfG-bIYy$S@d}Mkh2etCXJ+_;{~W*_U$zDzf$t6u>l;S^c+Su z+>cIGgNfsQkLe~Ao_PBat}hAVi`%0<%rDIyA!WhqG1CNErcz;ZWkwY)J8H2Sc#}RY z8=q8ZjuF8ba|)2{Oz=}qzDvGwPQw%IhSM^|bR3Nj(9?NvJ-*^S4480H`eauN& z$1+jiRF+Q58FLbX>0c@SDKqXF=f^;wq5m&4eMxGW zGc#5Wsdd&Qn4|MwV-^l_@LVEkEs4-kS12RHKWEygkFDYvplukfUq20AE-e(!jp!V0 zeGy)|I42xX+Jd%s<*_NpJc z%yV<5LRF>V6z_lzpL^hil;K;wf=)5>!w=fUj;7y!MjevqkUCdJM^4ODCRS10hj#zh za;IS7RrN_Gm%`X*n?O|K#4GE`%!IIJC+T^Tw9Xpsv5ZK`nqV_}Nykw;G@(R4_)_@9 z1A%8R@|*vfv>u{-VS@ousx)&@DA(kJB{MHNn>I25I z=jqAW3AYt%g1%pp)=0lya9OtSB1=&P)sRJot=F#+UktsD&4`*^loWoeP~yAbqF}G} zbVZuEosYhqPoVO+gx$@;qkXE6s+Y;hpeH$%e)1%37FEhfq1fd#_g3bUS1uXdUs>@BpAy+)oey7@wU1{xqwz|z=CzsoOS^yB)3+IUU-a}k z;L_^l%TUG-+J9}~P=05b)>5Nwrc@`G^=&yy28CJ2eAdi_zKpjz^SNC(>Z@+c?C!kb zQ;ZqQ0!w4+)Wtg8S@U$0N6`8b&$(?6%7Ss_HnX3C?Yt)~YSbDyyaOA28!qq#(>o+P z39gV6V@0D-$^mkMeB z5TDk=KE{$Jy*5Fe6tSj(zqY2S(mEsDjjt>X4rYCG9ZL=sG+Q@?yS#%;rGid*tH#vl z+mo)_YNZIN_4K_ZNv&_?#51KWF(^56Vs67B>|#0O@+oOYAx-uY?LgDH!no$%z@<2s zzLs;Ifx7D__Q9OPcB}7OT)=sDFS7PTMz!v2{a#i$Xv8msMl9A?EuI8n`tnr$7mZ;` zLTGQ`5Bukvi59WeZtb$e>SFTppP5UJoh0VC>Or@bm@n@B7Wei>|GQqY;12yIl{w+d zvePbhUaNQS$EJT6E&U(;M`Hgr8YsjU)q7q!9_Aato;L` zEbW@jh_|&%Xkf-lxF`wrPgP1*FQLn_2h_t(vT{N57LO;6Wsv}UX8+fpCrSm|9VBK& z15Vo)N+eA)o(mh!vQH`+cAxXS7l$lmXI;R&%8n$h&!UH1^R{Mdd z$*b`;NzKQ+{K|Z5|F4ITk>NdNoX;4 z_>hd!Mz`Y85ua_l0-lH&?R%~+ClzHVkS2Awg`FdR-Nr4(_S>zWjY#_5(~w!#Z9~rW zGbfCxTJQyC6?e;?+6pBx2`#>Bqon-W#VcaHShmVfp_!}^#ZO5Qqpc9b}Z2Vg+aSs-&|fRR0T zW^l!JyZk08a7ry>Nb{xv-vlF)%l=ZdY4{XPF$Rb8dLEx7=*$`V2c3mSt{1#-ZjFsI zzL1o?Ca#_JM=ybegsbs+RQ=a4f>{bo$XJZOBs`oK0qjK07xUd=r%0LAaS`JuN*}x8 zSC*4Wz>vDIE{)4RxC)(_zdLU&+o!5_n|};G-nEbQ4E&bXb1wlIi9^woQwMj(NMBlV zeH&)rSM~Y*&px?t$0b$Dj4x&s4RXNx9p8IbKqh}bBDd!AEr-?{`wz-_-Fs#zf>W)& z{DKxEJ@63)#*5;PTPH-ib5%S*$4;;iTrf*!Ry)X3o>8WEnhG3mDeq4+{ z)Q8FQUg$l^G+3I%kQ?0eIDR@+0G}f(U5Zz>?Cb@QYkNEGM zvcNY*N@D**y0ZLbe);YM60WNsv+dX38($c#)xd~*SW6J(Pg&*0uY^ko_NXt>q?AzL zht_FPDCo-;UZhdY2)|0$_!bu?N$Ss@*|WNzqOGKOX#M)1(JOEpV=AQk=Le%F#YT5& zDv9k`56*v}WjNUI!cC^Oa6eBxnOp~gI@A>65k#Yc~*+}0Njl$WLdA^B9P*YqJUnv0d90`zo@7EwR3eKCg4<2 z5U^nLu(kVRQ$@vs5<=X#)7}Rbi6hI z{F{35oZS;FLz@Q6G}_@3`C1Yj^e=8@hfQ+g7di{V8vkWCX17S1jKII54Q#bfp1d#c zAjl7tR*>P}&krJA_~mcj3OJHW5=SMfA3O8X{^BF{XD=-kc{{%d@_!<^{?W)3?1?{p zWPcp5pm7N$$9C>T7t0BkKVO3S;9fiBl07XO((yHslzvn4j$yNA!K{XF>umXAD)FZZ z4Xg7h52_9iye>*elEx(S-MWWjqLrCc|9R3=v!+z3Pqt(+={*z_%EcC=92;0F77cxG zZ+u)rfIh2Es{c1zdOQ6$LC_a!U-sZMLUAGGXTgD{QMN#QVOIv5@vV7oe8D{mneS@7 z8SrGuSU}DE(Q*E#H)wF@zkiF1>Fqefy5xNTkIV2qO3jI!Kp^(7Y8wT?zG(d*d!pjc zZ`1Voz3Hx$_{~LzX~R8!L%#bRRw3o;4Q%I~?pO@_E^vFE6FAYU_40kkJhs-Fj7U(m zS*gq=IXlmBVPq*Z|?XPv>IgJE{AW(Td)eE0eAY}(M%O8>wFxcwKnlNqBkU zD3M@ibB5?7D8@Fe4-XsUGFi^NWfj1qs8efAP9*pi^@7Sq5mWlpF+btuILtYwX&Xlx zZA_ETdMFq?^4~cK@Hd5i+WN}eBHR7w;rPk^<`p`bpm%Apcb~NF>}nKoy{Z5B^f-5G zkMfD&cV8HDR;CnW>1XEhEg9@KIq;iS?zrNg_WraWG0puLRopw;P{=fc)#1T#=exB0 z0v~EQ4D0V(9_cA5-UrO>wWW-t6lhUOV8{@(W@7kWTdPs>n4Fkgumbntavc3h$>;>< z(oY*n(lf6wleH$06UW+rk%F|eZh2*_?oBTpVq|D*u%!C45}-k$M2w^aY1XlSg8DnB zWRb{73)S9qdg@dBGtTJJbM`VLdsS#B3%su}R8UUsoVtRBJm9I^^uTL+1%~K}U0=Lb zJ$DGm2wT@pmtWl@E&J*6YfwTFX*o51CV@t)y04KIG$=`^PcrynaX43`C6`nIvi=KDF3U@Z=M9CB{y!4XJd?Yh&aEJwH;!D z4^#Td3|n&T!I1Q8KeH8=;9HoxcAWL z4`-W4x|6fs9gC}@0_BAozDaWom$4X|*6|D84W>!T9uMWNqp|1`0gKO9&MkRAyNA%X zK6uDj^867awbOZtAR`)!ALL-MS$u^pobUT{WHJ=CU6hdL!*mnK+oJh^BHOCy;1ER-1+(B` z+IS8eTg9&z5(<8M1UQj@I3dIjHyVBaWSTeV6u4giGVa~3mdI*Kg1kV8T_ugN+s(5^ zs>cpqS>D#eZUf!4C-=u)%F) zNCuCl%G>Ce20>s};C&%4T_3Fo%z1Y3bNQtkL5 z5t8Z3N&=+ff4PQewZ*ra@Sky_5OKW$Ia-cpO`(#ist$#Zhf69Rj>$R^p>&y7=_Q zxP74h&PwTzwbkXl+yS3W*n@?AYiX+EjKD=->X*v)EuY{WWGUc9&|lnuw ?saF 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