From 028b48fb9281532f61fcbfa247b9c62814d1aef4 Mon Sep 17 00:00:00 2001 From: Leto_b Date: Mon, 9 Feb 2026 14:59:58 +0800 Subject: [PATCH] add power case to pattern query --- .../public/img/pattern-query-altitude.png | Bin 0 -> 38265 bytes .../public/img/pattern-query-flow.png | Bin 0 -> 59172 bytes .../public/img/pattern-query-speed.png | Bin 0 -> 21698 bytes .../User-Manual/Pattern-Query_timecho.md | 150 +++++++++++++++++ .../User-Manual/Pattern-Query_timecho.md | 149 +++++++++++++++++ .../User-Manual/Pattern-Query_timecho.md | 149 +++++++++++++++++ .../User-Manual/Pattern-Query_timecho.md | 152 ++++++++++++++++++ 7 files changed, 600 insertions(+) create mode 100644 src/.vuepress/public/img/pattern-query-altitude.png create mode 100644 src/.vuepress/public/img/pattern-query-flow.png create mode 100644 src/.vuepress/public/img/pattern-query-speed.png diff --git a/src/.vuepress/public/img/pattern-query-altitude.png b/src/.vuepress/public/img/pattern-query-altitude.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ebe1be3d10e0379ff64fc4af33dfdb65407e88 GIT binary patch literal 38265 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�y@GCml>E$vdaTpm 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 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/pattern-query-flow.png b/src/.vuepress/public/img/pattern-query-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..75c1a371e762aa481fd20a5d9f175294076b6cf4 GIT binary patch literal 59172 zcmY(q1yr2B(*|0KySux~;#MdQ#i6(_#fm$Nwz#`%krs-(OMzWniaQirtms0q1unn; zcka38&N;8;WRiKGB$Js*5~HP|gpEOg@#f7NY!zjBoi}gZ!d@>-G?dpA8!%z%>jS}4 zM@jZg?G)9~>j#pZjJnL5Hw{Uca4Y23Z*(_hBhNQ)2)zEg5H@XT{ocHRcBsh9eDpK_ z`(%{NJes=|^(2)P-L&7UZ)3~7VYYF***m^&#J7x!gqA{<${*TqG&MR= zSzTLMd*>ZsW6MR;8!^1qcegGFbq%T2CZhj>U%V1+KW{Dn9xooy-eXy#@Kwge!58&f zS2g8ypG9>N?Q+;6yz(s_f2=f|x;0|=BeC_w@;?K5)24~$)30tDaftzX@}Ia|^dQC( z6HS#<6J60&oSRw{0X;MhxeN@3jxi-@deqMoFe+=Tp=_%lh|KuXE@x{ptrhZ4>V=TN9KZgRJU|OWSER#-)K6rtbxYQKWXVjU^=Al;T%{{cC6!Dn{MEXS+yxqTcfPql{>&NIEya{X z_gnJCqteBeSQ*J{3r-l+EtPJ#r2Sw|Pz>wn5G!HJHN^dz?0R#nSy80*Lt(%>?o#h# z;2Qfau|e^2x#@L)0;DZQ#re^@kh0FxC1(phxs_hg+kNk-h=i94=3A;JBuC&?W&nU$ z2IveYwUHT76b`W)8_-B8013-6U*ZTTFqkDj>17D2kHP})@TT}lL$sT_dG^QHq~LZD zRa5~hUwBy^xs5Wh+ejlc3J>J8jWpyebr`!eK4x%@E6)*e&l?mTSOcZd{v}7%yQWqk zM-JTco7z3g-bcWZiVK-WwLTgbvopl1!#+piYWnk%#;VNE^{$2jyf$reu1!INO99u1GZt~js+4^!ihL-> zli^Il(eIgLnPi<9cn|wm^Vc~r_7?e-J)O2Ad1LS6>KAd474VuiT(Sh!qXq!c%NM_K z8A{lEyhD`>i3S?ZDUKm7bxVjAGYWC;eOs*RbH#^jS3f9$bo1JH{wk?hC-l)KH=$Bx zeWG}}ytZKrdh*dF(Z)4CN7oj18?PAlR|MA+tY-KDjCyVDqpU2*+@PBelslNxgKxO^ zX8aMTc5=K*H5t@(QNsGQv``(ds_<%cyKe_5vzSyO`;@f9TQYZEa{za_wi6Z6nD!8@D088QoaQG+GN+u5{Yi=Y=z5*?c4fyTJhGaL3-NS?uEyj z6&2ZP_hMJ-S9h1ztWZ6=7)Ij+GDbYB==i1)r5zd{6a{c92;dseH?pxsj|of2Rs{aR zxDB}6HVI^=rTHUsS3#-?nF9NNHNt8YRA!63a#x`D(Du_U$gZ3{xrxmDu)84;`WqcF zujE9IPOvapira9qP9nUy(zmMK{4Uaq_?B3~4(|a18{FzQD+{dgU|T%$j(E>D7$QQ|q+g;E)oO?c&|S+}G092IQ#Rs$8CnfLW@*1DQT`` zL=C0iu#sAdwz2WYEn)VdHjqC*|3C*;Zn!XR@_+8mu3PvF-mEEJI>8RAi6a^>%dR^q zTYevgSGDk2ZkuA3sJc$(u!_`^XkAn`Q09HBam_ZM3GKj5{T}lkUA7~h{k}MAci;`? zIZxPh8+SXN_C+7AtSGp+a{lDTs)v;O@7$Fh*UK-31GP2tGE=2uN&g-i2L5Z;^V>(Q z3OnxgBv2u4gkODiln=oU&OYJhKzP6GNQm|~6X|j~y!G?}A=wp+h~!P+eZ(URT;u1& zk0*2OOJ|mKMu>17GNSgfL3dVc_i^tDRIl!)@?a9EpYICX@`hC|`7gk10i07tkG7ZM z2LPFIlG}(Uh;`g!ZQ9mD%@#pU*VDU%c&p%AMQ(SgE1?(+pp@x)N!hiI>W`^AsS$1^ zyC4tO0*j)$CUH_mLa=vAJulkZ8{DgY%lCg-|HQOSppG}Qw>yNx!ZOTQO?jy_Wr&dC zBzu3I+&pM~>i#KPs4z0Vva({>`}iaka|_Vd>)bf|9cm=i$ENmnztN9c*3|eS4tI&u zTq5038!c)p>>FmdXei`{A@;^(>ZA&92P3rA)O??EA=5N=;Q6=kxD62gMG$QXtcf?- z=v4hgVy4>bFwjG|`jIV;FWE_uVo<#Nw|?AFmMkhsYm{@bnk>~e4W^4gN|7(#Yo1cK zEs~QTev?%MwHA`nWeOi)B(l`zN|aRA3?HImvX-%?FO zWK!%5XXGm0G(wP&-#ha@L4g(e{SOHs<~M+dd;ggGx6Fj9RR*bUt{~f{0?T+~u@2*{{ z#vbAHk&c(VPJE2(eNDl&FFYPAu-IX<|K>d+R^3{IvcMh> zW0vn#fm3DHc4n@tAce6tyQg<2zP4peBh|365YmprZk4{Qm)^179e}ADZFY zXJ=Munkdj3l-R+<5<`&6CW|!~Q=I}JW0Y4U-}}HjIf8)T|MR=RNOzuk*mv7-l0Yac zF-C9z9!!QU+~7i?4e4ZqGE|h{#SQmhqHzLM)%T)`7l%gvlap9?o5HKff$xOji6mPn z_b|RwxokLwZD*X*$Dy!Iam;ASSf-5$6#AQ%`iA?Q6JtA$?cg$x1?@U{$!#zz!r}7H z&B?yY57Sq)&X6RFJ!(9?-)4t>Npt3@Ji8D0PLq*Jg58;Z8scv!t3*3i4u>-Q?Q^>C z#(`XGj;Sg@q7*wqIuE6~?Oz003Pc=Ca>l6yVpI;)SM`7RP3VnQ-?$=O$Req9Bo2wdV>}o#NaPcb-s+GZSX>zB{8;pPN=tl zVKm}48GE~Y_>;{g*-i&m6UVt8KCk^aaMQoajt=c`++)K5`$n5<94MxH5yp#?*-UpW z+Y{-$oj>ljBJNMj6Wg_J9=j&{So*1h7pmD~vr2*@yD!R<78#d_Zn|$6SQxu_pKO~` zj}x2&43?u(0MN|h9~a6NWUal&yM|noPQS3QS+tdu0Q0YU$R57zY^6UGUp?2?bq6hi zz8bx%^I1@qSQPpZuPZ0NbI85_ejh7|Za*>no_@wIgMBJmPiPeQl7f2a^!hPiIrNf-zWq@TckahEDLq7{`gDqaimsw|nG+ ziV?+lY-sjOrV2SWGGTBg1Snd5_bn^69qn;YjGiaQk{N3)^czQ9W1IR)2HTzq=3Bp6 z%5aCHqShxp^nLO%K$(c(6&*PKWyh|ed+;36O?1-M-WS+Ybx{fG9cvkA*fvgEH5;)Q z2{FH`*Jld@2FD#}mInS6l%;Cg;n1nZgo7a0AFO)rcN!qwD7G>8zl8_Him3+9>0P+h zGPyTT_7Q%0^Zn$K>*e6!VA1V$9eaA;9uoVc01CMb?wbHXtnCU!;{N;V@<48uvc7I^ zr=s+KSI-V1nm}Vy8y0HcmAml+x6u2WP=MDsv&l9}xZ6n~Ik9N-RI98Z zTD_Eo7J3EdBo~&nV+;hRDnI{Vk2PjVpRD%a^31vN)03qb4_+*G8l0}@F8iMUub#JB zhv@M;>Ox%i)wffAdl|z%blG6uPK}BxEt0uo7agjscP=E`t7$tN1Uua2b@1D=SIwsI z&2VYopEpwl@C>9Fn7-B0j$L^?&FQElPVQ9p-N`q>AO*P(fB5gYX>{WQW@y>fw(JB z8e2K9+X`&V#zezT)ONOEslTk*BC_vZ|4|@2!1fxgu47UwS<-=5(lUjDrJIsBpt|r+Zwo z^ha?7$dvRQrg@gp{(UW=rg{r$8{|~e)5!DG6>@tn4sgYSUlzR}NKl?MPfv}^BG3kT zWqseb`DcDMbAGF>r@yphXl%T9agkg)SlSR%TQ?@6ZMfa9O_feXMb$1@Qya|aaQDN{ z!i7k0|L%?q-|Cgv-dlWULrNaWvZfq}@mlnLa&R~*2#oGkHT`Z{ zCtG;%S_+?th*H%8$NBT(Rc$ora!X27O3K#T+xrlxF9i+S4pMP!h*t=AX&WCMMbFF2 zvmVwnEnKR3^yyOX+p+_J?h~ZW$8MLpCQdSs^ziU;aB!68(kVq;On>G-Pi@^xFnF32 zRg}QtxP8N{CV9A@z&PX-WiO5In(b5-Rd7RdV1cySzKIHhA+964y^7P(4*an(C^(x zx*jiWbAYB{`MkY%p{J+LnVFfk7}dATFXx0iebJ8#1{Mvyy;G~Js~N|2J2&|FtEa+A zw9?ShB&ibfx}vJEtF3eX^W7j0hS%UgV^`PsMwjmv`jWwBlmCIxiIim0+Np4x%Z5L5 zsWIdP-^-zHX?HhCx>x7%@y6oih7P(tEDfi*Z54KC(_G$Mg=Rf3^Wu;;gZy3)w7Iuo z)6%Tt{Dtp=297R|GI;(8v&VvN7ROmN3zL7a|5s{h>2KHErHoUQeLc;<*0!9Y0k+L;?p2Fax*PGp<-RCOgow;N z#kq%{#qV1t!v#m&eeo_QGR{8q$E|WL_n`Fge`dJEw8GZ0rf~cDN&*EGYlhi=OM9Wy z=C%C%{NMJ%(X4kQy(dJ-7HH>dhmULW4S)4EEIH9&K(t354A(|o&bB;Xp>Fm8lQdkR z?mV^%23pidVY3AnRO#!;|v!)XRg0pb6^F>qU>g@58y&Rpt<; z3*T8=d(L47_+9^@59@sdo^)y8`4h>H?hYq4EP5PF72Go5ZV7+Pcx^Y!n*GHZlh;6x zDg94V+AQKqSDi0r(1-K42BU2)nMKdnoKj*fAC*XJ*fQxP)7Tj!SxSr(104gIUD9IULYk^xug zlAb3CeJ4l&+F1&4cV+NNAaskB=AD0drN`qx=Xihs1a8B&=qi>N3o})iFff&_V}ufC zj|=n$)DM5I+cjlUh>>3>ZLh0(;$$P~7(#gaC9#jFuz&B04SHsyvn%77l4cwhOkm~{ z|0W|lgtY<;Un?hoxfVGR!ul>ei(sRRC>#IC9UV{LcL%}YZ=Zr`^Gq}}H7gcQxVX4} zANd@4ckbV9IygDJ-FihBp*`r)hZ(*}fJ-YCE=zrgg&D~F`*mQxMrQtn;v6ycV$v;0S#=U?%yq?*2mNR0xCLV-`vWO!fC8yrT7m?+|x+YpZ*R{A;wzJUwa%FjKamociHO2-W0#6U4nGw_g2O4fl#?%=N?AEgd>iIP)~d* zv3F43Qz@G|{R7-g{ZaW5A*H$|Lp?mb>qc`xmW<5D_U1V_k^!ZHAr02u%nE*#O2Srq zgF5Ta`$Okxn6>Knx%@ZeU&$|M;&59$*RJf%W=Kcl#H%Oy$R2mn_=o5G zCAs3^*Q*S%vA#J+Qn0Nn)a58H4GxYA2Jc+0g4U;?Z-)$i)c?uwTCAC^+63n&g#ljY z0%A?c&RX1ElDE3`V(-#-uG~7#kN=}UWwo}6zJtY%ajkc7PN|P$&LOGxye^!W&=WM` z|D(ETHGqY-_N5iS%DTb-adiiL1opm~;w(0C58e^~lP5NI>2)x@atN^Vu!0KyPlS@4 zo1fr7h5wfz0Uwy5oST{$TMF47HUAUxRZJ7L|0RClS&|tvC|o|rwV{3Ze=Db@$jGkq z>ti?E)%&IIU;BS7JBTH(HJ!6!0Q=dZ^-1n;Q?A07|Nk5zDWL)C%*X%3{xxLwo&#WU zxmogdvAswx&&eh~$d%1x;s1l6+Z|xR&8GuMakMAmV3fWu`L^VEfBw*(*gg>S5$9ZB zf3#|ecvI87MR)_`TB+V0BU*k zDtLXcJLg8MKSG;9i`AH4Zwh=MIg?&*Q3a9tq_O+A`nB`JtT2(I1 z|4B=1b68n`PHf~vyRyg7_uXaO+zr9T@)`4FQ>l9czcmO}RV3-dgV0Y!Su)UqNDG$a z110{c9|c*AatMCisf%!Sjq?l|ig%+%k_mYZ?s(R62keXYss%*_?eE$Zz<92DTL^R3 z9^{GdB4~rASl9BrR?E4#>pV^to#o%xgqWfk?kX%3*O!o`GcCo`A?!60n~J*Vm*U}j z#diGgTP*#bQrYMfnqknAM}QA{U}=Y=F<)hkZ#0mCMKJY{F@f=MiaqJS$3<%FD{>M7 z@E%zUiD>+epC)pE_~`jvB^V`;>?uZ$k@%-Km14Msl3=v;PEXW%V9i6xT+U^fguI(g zfnwww%QYoRE+$jL_p6z#p?!mt^~O6ma*O#^3+w)XqqTP91|fa#~=4Y4CIm`$vVcBiYTn)j04h0{VqS)y7TJq7judrVpzbh z%bjZL8k)PK$#Kj>wRBuh3-MIY(N!P}9M(~oKGl1Xj}!OGkO!oPJx+Y#vTX+003N4C zv{2wkAnndS<58_N;>7&OFEv)tkw-KOiT(j2HUuIJ%?)VGs=B>*JF3FMOUs5^ZZ_sp zQtK7STm!6jtnh#?P0;V$UD}%SWF`F5$-L{V*wa2L%GwPT6ysV__MU3J5{;t8xGed5 zo3Z1(!PxpBpMk!|D`ZypSH;^QC-Rg2^LUiTH@CW&-!5&Sy9@f;vyD>ys>#4!Q`%zg z&MOk{)1QV*gBGlM+ah4SG2o)-ClZE%qa*f!fPnQ5PgHBuoN!eOq7%M|eZ=vQteyP& z$1nvw(ESy&ot@olhA7d*sI_uHP4A$m^=!x7)V(75^g6l9%mB6cZoMOfY;dkz^T?;` zKUStS*&3x| zwm5t^tMBoJs#m#x?QNR5?5-P5>Hex$MHbSlPg+tUsaiCXM_b?9cs!+R;8eWG^cvn& zaF6+@c&Zcqo*>aUa_)OHQ(SVpyVX7Cwk^*>r5;o4Z~e5EVa7nDMW&OBCl* zgD0r0fHCKr%!FO0u|-TZrF@m>cunL=|Cub$>oRL}l=Kt3FO;&n68liDT7KXc-@W;x$@}H#9NwS@1fWzr^Nya=ov>g#S9qHE1}3Q9^F z!l5cE&b4-I=xd8bbW&iVWv5iUP2bz8h8sR4P!KE`K3qALc=6F&xuW7P^|no|!n?Z6 zC$`$NNA8Wq4AgDy@P9u$iLa5pQdIX(`?|$ zM6OauZ}r@x-nHPR|B8215JMCOyi4Y zcRx-3ce5YO#(Me6Hw*#&6P}#T0K2)X;x}@a2jaJ*6#@6Zri}-tq1+8O)b%lV)>
Gx3<4x01TxnN~_}HeJyMsOmK{^GWxn6IE0~w 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

#_Z%2MaE7*AbL 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 R-GhL?J9>t?B{%IN{|~m6xW)hg literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/img/pattern-query-speed.png b/src/.vuepress/public/img/pattern-query-speed.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9fb63b4b510c7cf45dd796306596ec8f1093b0 GIT binary patch literal 21698 zcmb@u2UJsE*FG4UfJm_b(vczx0!r_oh=2&F^cp~VS9%FS5m1q;f^=!p3DQAGKtxb_ z?@f9_hlH9iC%^am-ueEsX8q@#S+f=_NOE)Ux##Tj?7g4;?EChyjymmm*7FbugjQ4I z{!<8q6b^xq)KHxR@6g?yV+DUmyq>DxgOv5KuYnij4tKThLLlE_X-=&vz-wwx4HGX2 zmt@AC%O3*KH`2U+SKr@qV;b(SKb*C7rpqTNc;iOR)gyjtZbrsQ{h!UUeY}*; zLc=+D*5!$y>fv`!k)>B#9Px&z!~v`K88-Ke@&hvhRU1Fq=vDW5o>%1Kkuw;uxpwU| zLFOq1^}9Ehl26pdTD$&a%m&%xxh%7*26Ngy6gG_|k=&+4NYyUlaa zo9D}7BBmd9V_r98gwbijGEIQ+|A)9$jZ4)aY` zxyJmM+&awBBIeCwgm?BEI3(@;HYGQucVu&b-86}(-Ts}qjue+42)5Oog6tWaI4OI@ zOq_A!1;`7Md3u$e8|jbjnfR~oDpl7;^<%5}2e`WnG9Tm@=YWy~O|4ODG*<~e&4C_37=-z8{B!5*&c1W$hZ>c@* zJbYmD_+9yU-OL25q)Xi#w|Ab&p?LjLt3tKbrKVw;($=amW*$!m7Vh=&+!TZm^I zsiw1=8#b0xal-r@WPG9YQ~p=k5=Z}lYNq7hy=FqX+L3>XR~~8!dMgCc8UreQ9VA22A6Z~gi(G)oia9P^%*T+s%L6+w_DFh;;{*te{rsh~ZmeWln>W>+w{};8-c}1#KmjZn?JVSRe zXAvVKcEUnRbUx>`o12^cMQ}bo{*=*s)z#HbU7znz;KG$XN)?16iURu|F={3RI~SDn zWw^AG@qh!xL>UOK>^RAzDu-GV0E?ln4-Y#sYe#ZYmirRs1re6H$!bkWw4#WS?BwZo z5`YwOiZ|&`z__^mY^}za!6|f9|95Ed|7~vn-(u2#c9pt`D*4nfdWa|4zrnCBF`%k9 zm=1FEW}CA46ICE&>K*vU=j-%%iR76+M=&Hb6+k98xjH$?qCEJP(YNz{(ez2lYLK{E zU?%3g5{DK$vy8iNm%P(iQx-!?$Sw!iKti9@PqR5T#4)5QN<=v1D4ugLIQP$0xVKC= zehVE=OSVu#>Zrl7#h$O}Lni@PG`|||zX$1{1i)8zJ*3PrtiU`vvvbRwdj2o^RW9NWX{w6F?nck zg6E-7x?X;RtYLgladfv`ibMSc;;P4a9!7Pn=(TUtl~U0i1ulMLWj+^rMf-cD?6Rk8 z$x^)iiRoLcB_vMkJYQjT^{{f_zN43k{)}m?lum)(wn`>&B8)-aZk`3B#iqK^5~8^} z>=P3cT|5w~l*)B{`AT(d1_w@oyDGyV{f-$EIozGYjIrhx_ec;#nDa$}9RNFeom41{$yoUq{V&-w0&t5?^sl8$P7p0vVZXcCo# zt~utyTbw&RI9d(d0VH&gkDWl8^rFxyF~vn;*I#gW?n5q5cbZvQOiIQcUJxy5JHyk> zcS@omF8(>W_d{F166EN{8UUaU39qXo!JG_*3M{@zW{B+vd@B+X_uyO1a+|69L)#h; zm24ClBn_At_X>GTbF%v1uWiq%Ki^LV@4f)$qM{SU)RQf&l{h_r2_hB^3~*=QV%??W zjno(hYREY7#&LQjuRa^FK$-zMt5|l}Lf-rGiE*rOkcOrMD`XcQ=VlbTa9wUvdgSD{ zqf5ocxlnK3Q<4srZ=}X0OTJ>Q=|}94G+^1>E~KitzUT6PMRpD_k(SO#o1XA~B2$qf zx~f+Ok1GT#wRkFFyx*KN4OGY>0z}h&@2KAY;+nom^__uPvVRSRvH#waD!Xxe#_g^w z`(ioB+!bK5CJu~=100ac=^Jcs4JNhM2xbuOi{SkjD^5ik#zF-%Qn%=lGRIB`cPbdN zn8-x@?R%FYxy;~(3{Aoni^aZ=-yWV=~ClyYy6arr1?CEUBuqxz#$c2?zo>#u?EW=Q#NaY%T(}8zPvG5 z2~(|?Bq#Gc2R5*+N=>T>gdA*YTXOa9kY*O*V0x(4Tf`(Mr7!)s9qI~hS|vi}+CC`+ z3~l21M;b_47;yk;FZP8}D`8|*ZIFtWAb?_7{J2fi+yuTq@Gi%!|62&embf~E;&ft4RHR+ zi;tf&v!0gReXRe@R7TiJ@OW>TjAB&|Dx>FAf{}7DAFMIKRD8itVU;{%Tom;_Q&M z%C`0XCv{UgZU;|WYRInck9mZ*PC9z|V@jK1u(NT+-ODRI`tkKtDmtCDygKztlhUD~ zblgvdDB)#I*!6O|Bde}Nik3{XcEfPtPKqNW3}UP$fd~gj4t~D#?EE?ne8x1u zIgsn-RZGiKHTLu5FWveT|E#w4@IKV}Bzl0W4r4j(UV-d_RsF9-KxSaU#xQ(;jK4=RCVc|u>i>X%> zG!g;3i*I6g7TSxyd{N=&=WjTe395e9PPZo}kUtuWHysfRx+J}x^=F3VZT&d)OCtGbdZmEDP6!HVg$tL?E z_fKahwoAPCbCmb?+}%p5fY+jdeo@tUSu|xG+k7v@b?p>eCVtyr?^!@j`S|YLm-SS# zq2Q1=HR;d7??N{39eR-zQ*(}5_@$eW*S#}yIC((x_WC{ExJ)W|Kv`j-rr*?ab>s2f zrB2Bgiyh@+kfWRZkR%Nm@;HFH0rpt*aLcucSFcF5GZaiL5k?96=H?|ymVuf}OH0e0 zkUB^UT__cNa~Hn_hpuD3ERWz;h%rYtY`t^F#?jIrhZy`sWQ0EieMnY~;k)YQ%5!C7KM}be=N?9!; z15eWY(cH>y=LtJF%43GOOyKw>z{xh(QeUH{>>^Nq|JuOLPG;$gFSE{&mXOZw_^Au%x$XHHO zlf_`ZE`9MqWhVap$?5WE4JcY8222{j_Fn#w(*>?nwcVp&>t4k7O}SDi3OSlnRV88E zZeA0D4-{ehpk~i4kxBM$GWmo}t2%DI3Tu-)7Tf4q{_HbHm(>!@KnZ-DXhbkOYXevn zZ%k=zO4~))k`S~X*k4fh)t-;RQ|Ah)g0s|5Y+`FJOz$3fzXC3Pl?=l3R}L=Q)7S%* z7=^-{Lbk)WZcn9#@mTl?5A-V`51-M{!cL#{o8>A+4z16kpk_6$ccNOaFfz*8@K}JI zW(mU@a47gcPVoN4;;>rLDKgl`40SbBi<#r;m74VS%r|U0_`1o7^;piXa&~g+SLcG+ zGDWVC!*>3*B}!9L-4GEOdB-Tke$w=+g9`rq9hTzT+MJGJ-*K9yzhBPR z3#|FocJwI*3~kyTBK_hXXPSEFq6c+rI%~R)@7u9!i zD$EE(7rrMid$sAvFx>o-tlD>D;(Zk*Zk~?o<^;H#vVe`12HR5ISW?2N8_HD)_# z;>1b7?#`ck7fC-{W<5{+M#a5;qh=BqFJthO@1&cch=^3NW`a8k?^|6}^|`G^NLY9n z?AdCMS*0UBxV#*tB~(8USU^MQZn?CjPl2yeBI14gJQ$*PvcHtR>7t~nv^6a zGDUMKE0x@OIywL7!pZfyj&C`~y^1c?XfBV>QE~R#C$+1}2PMPEUL^_U`d3F37i=Gv zMK%T3ee5l*ohhnz8BJ+3Z3?XRT_3Y%GIMrzK5u#81J1r|qh;8ltN4LZ`&oO8WKi1THT0Ty8yyWkB6k#D_uD70G zw=O|nrNn%CMA++WP0TWLJUhu8j0_j{lFN6Wt(^@q(^bZM8;|>;PAq8I?3+R;={ZaE zbQKL;MoOrK&IXc@LoQcG9>z~{0o7eu?&W;nlwVJ~gL8#p1fLYwW zZR$o=Yt_L#{;?C^TX+(EKLSPuX09K@-i$$@l*)c{WuXuNA^$#UG6pV9!UsK6er=Tq z$wrm|cE*Y_Y^}(fSA%yUiej7JCyo%Pq1bnbr?Z!JB#OE3hEu?Zljqcly463J)J1zv z8KUt(X`01xu_M0e2h<@Sn_KVg=u0a*Udv0 zk9ih?l_4YmJnf%6Adg{>IEMn`5;m{9UBdZ7>qjdRQ3)Uk)aE_n+GE(|A3`26U~W~IbH3=L(BWY6zI6NrpTL6q)K;oc zYJX~~y*gIyl9VW7A&6~Uc7bA)L>2X`vgQ&J63XRaw}2mATI!LFy!2M{h>i7jg$o9&FSudSg#8CA3i_=Z=(r3j# zhz7)^AA?l|#)CRt5(TJaZRg|TbNt5$dC8E;88cFPJW`8fH1q{tcx^e=gHDJ|-2Tzn zozQq&T1^D_b;(kt#i-abl^bdm60?JJk-XuQ8?T2K|C3}{h7oO!Waak%WS!ZXE& zw`{d91CY=%4xhV(j^P}*&a?-g*Wwm#(u1CE`kd=TRpBViCp9JIM~2pbnMYIJc%_4u zqTi)EVfndlP~VYA%S!w1^GdTIig^&j&SKcUIE0OHcS_yB0CuP?;%!k+*c_$IT@lzk zsZP9TB@CP?kOH{Zzm{O9Uh4@q_iUkPS>k>0ezjWR>Gp?QEzu^4^%^fO*nYeTh3uaZ zVkqv-wPPlsm$pU;QQ1utHv5_^?vT=U+$I`g&6L;H5zi|LC!Ef;3VQNL^Rp8gtEd0h z40_R}@14D7w`9BM!QaA90g|81KZu?wE{oNW3|!-KKMOzI9x?MM1c3{Pz5N%=R z8kU9cGysU*KU|0f@kri_$k?_hW|x*%3zr?P%$ut&##E*6Q8p{p@7vLEE1sicFIehK z5@0{&D}@Tk1m#BY0FI=FtCkdWBaz##d_Gnv;anUVA-` zr>fmRc+t+&dvYTk#Un)v50@~?eE*F-J%2r%I&L~7M_p_oy1}L#gx+tbmCsRgo{tV8 z>>`;++n0}`d^g8|U-D^RhORX#hd^W9&zc%eGgE=z=4-Zy{>}j!|_Z}u74$xZmsXD_OaD)k=6KSCP80VFW*_KLy^_Y zqd^lca-;9pUJp&;25gz7`cZmOw~++?8ZZ%(cxsLE6n-`5d`rfcVUyMLE#TA#;&Uk+yy!g#O zah$$I-Wfw!;6j_%iriu_mEBK56?jd{`IMP4-wIlpJ+nYWv*uy*)3Tqb$7m?N+#ZaH zi8J~^SAUpy-mjxgj{)#>g?g970H>RJys8cc7c->EwaW1|-1bXz2Z*3I`J3j5pvKkM)sW;?tdN}9O3ot?A zR6x1E9yp8g^<1ysVepyvgN|sVGPrrZ^gzOqT$Tq^b6}H_v#(e+5|P8Q-EcijvPUq9%Il@(<0r8Ngv0->sXFE_wc`BjqX}! z9T`#|bzp|Gv{Q%jp~|qV71Au?bb$jUx8DhQKY5nJSGbXA=IuSJMB9Kfh3!PJz4yDT zuySN6)uZL|9?mO)}3S^nya>HdskvvyBY2$ zjea?@QU&5RuXsMEl`1=;zaJv(e0QFhh0!80??jAHKad|yK4Rf(hd1wMJ=Bp`KZrr< zNMFD^fRN!1b1O;RkQUvc)v#dt9jAojeN29sw)Vu37yQ>A9PdIL-q7%PAxyOK3yI#> zf~_|fmpccSt@J)9?FJ6}{iLF8ICkcce{mm?2CGq0_SS&j5FH&`>g3nV+?X!@aE@LI z8bd_|PgXnBN;BY!&gTHR-q1v~i#RK!w8kTs;VKpUO>BS?lqU<3m&c!F_EY;j%iDYC zx}m5r*hGKUXnV}?ERx`ZUl@1b*K~N4k_!gmco+*W85I5gC_!JwD)ii}|FZ{SnSm2x zi|Wb)Uy2clf!C9Rvl`6>=vZ?_Ph-!nVK3;Sq?|tz2n*4 zA6EAA{_;oG(#C!FXyt`NTWP-h#VW7;eSWX%C1~R6FKcKN%PF5z%PWc$g@6}R^tqJk z1e@~Xtvehs9J1NE@^an}HQ%0ESOmh>jbQ^bWnh4-f2&=((J@zKw#vVhKjw&4D%$Xy zx~9o`a59T2@d(i)l$GU1WQkYPR@@wjV`X?7@Y4;f_wmFilF5+iw(D5=>n)6PTTv#{ zl`91R6#Zrb^1o`Qey!}0(-IaIZa7*_UBU*oqEGOI@|CqKy&=4we4a~reqM{BBsn8f zoI4uO60Fj*Ul&R(n-1q?dMGLS}uO!Ab@&JvgUMTzS{rAh=<3Fh$4-*JG>y==m zUHfODfx+(a$N2eU3^(wxXMK?fWYG?0R7)`_A%M8;+hP^6!R>t(eS72bB==-V#9*jn z*S3*?LEh2cO5~@!uyG@1QA^jOATtnVDcL3@^MQtdYMoW zWeue~%5Ad9^!0vik+~HmJ@qAfywXeTu+YJGyCahG{5ceW7DorWJUX|DT;WQ43J0Fa z!oAh@37}XC&#}wDq85)5j-doqtTnk+ry42cmcU0_TF}Sx;kr}Tpf0A1MZ60g z&@wxm=jGmH5KeY(wNWkVRThr-nQ_O%61Tp9{b$ptYD*%V`J70lM$O;zb0vHdF_G34 zZT#MEe&uJI_ghy~WnPr#oaOWIAuowr``O*@k7cY> zwpT0;rUkHRvxnm|P1mZkJ8SzKGVap{)$@~YPE;3bZzMc`Z+5gGNlEsi-1;+q3!2+tim!9J(Mq7HVqs$^9*ZN?lcwYJFt;l%!wObeJ zyVatj<(>`jrJrG-n2!mUG@q_C_%vB(dvz08sEq9IQ!3D@xG!Q3}Htpkd{jZ03ewIHVXAfQV} z69U#2a3j{nii@K1Nb&fP*C+`Ldi~?U51Q(OWQY9&54ahjOeDRp7V%&T4u6`Y_*+1L zo+TUDHYI}j&=S^U`c;RBGuSukq|d^Up}d*!uV8syrjgwfLAfVU9ffw88Dolz_#gj_4oSvg;k(IOncg2ucPn{B zfHB&1Vd7=e1JY5G?%%aJV+BfXS*?$KYqFn6LBtxZ`i$N?*{l+kiVSbvn5=aH$yUos z=p{h1d@ZwByKcTH8(lN|JW`Gmrk@|pmaiq{+A;2ewVOQYRYug9x%b!2o+({Dr)m=3 zY)%7T{=NHJIp}qSG6+Q$%?`Epqbh#?t%>qz!Y11HW(ccMf5>8XqT4{7Ia=hPn!MrL z0X41AGLP9{K$C$KA3dNYN?Ux{b0J###r~K*xVAPx`{Sw{)db+fk#APYt~HeP=u}U? zh-#3N#}aJ~WM_AZ`Fx<70=$RgLbn^g??K^(AQ)OgU$YeYa9taXt($vA^Qu$*{ndV# z`T)O}KBb`JIni*7w1b>jrSru!#`XIHTGh_Of}NBtqJSN~!zbre2wcgtB+=1&<-?aE zmfxjhq8Q)aWWTMFlNtP!h*P@)B6^v_l|1fYeGJBOp;%g{mI8Pb%kgIhD}-Lpjq~4S zw*Fz3UefR#r@vk2J{`B6r4cQ#L+f))*XmM)hYOli+|SPd`~@ww46sQFYllOAc{-12 zR-A%9h^x4+6xf~`X2kBy;{F>Tv?StEt5+7wfdC|n(sQ3Ut|npKRGyP;MHE`ojy^lwW&cw6J1@%LVIdk`EQ*3W?%B`;e&0QKM=00 zCnx=k%LS*QgwFtqywTEQ>;<+98GO3a-fc5UZXe6U%#1n4AVygn(z2vy{8f7u56q35 zh_)L>uS6x(saCJVCNVsY^iA<~sFa&MDsJrMP!>}FnC>=NQ##6TFUCJw>wy$=IQf;( z9g-gVdBY`4ad`Onq!v}0bAr>n)FRsbjw^ug>M1aXqFCujXuGhH0@mhWW9nXbk7p1b zJ6a9s+{%X&y;-avMY9ZC&2A1T$Oq#;N`zLou4tl2E{x7 z)M}P_lAZKCS;8s7{rg4@psXY8h=k9@MvkOm>{N;CWQ{gpcJfSISp;{jWkmbuZ|2_- zZAs{MK~r3iImn)Kg$h(rCOd2*<{!OA@ue%+zBy+BlUzBnyKCf-Pei%MTK8c9B_1Na z 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 Al>h($ literal 0 HcmV?d00001 diff --git a/src/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md b/src/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md index 70e702b06..2d5135657 100644 --- a/src/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md +++ b/src/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md @@ -986,3 +986,153 @@ MATCH_RECOGNIZE ( +---------+-----+-----------------------------+-----------------------------+------------+ Total line number = 2 ``` + + +## 4. Practical Cases + +### 4.1 Altitude Monitoring + +* **Business Background** + +During oil product transportation, environmental pressure is directly affected by altitude: higher altitude means lower atmospheric pressure, which increases oil evaporation risks. To accurately assess natural oil loss, BeiDou positioning data must identify altitude anomalies to support loss evaluation. + +* **Data Structure** + +Monitoring table contains these core fields: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | Data collection timestamp | +| device\_id | STRING | TAG | Vehicle device ID (partition key) | +| department | STRING | FIELD | Affiliated department | +| altitude | DOUBLE | FIELD | Altitude (unit: meters) | + +* **Business Requirements** + +Identify altitude anomaly events: When vehicle altitude exceeds 500m and later drops below 500m, it constitutes a complete anomaly event. Calculate core metrics: + +* Event start time (first timestamp exceeding 500m) +* Event end time (last timestamp above 500m) +* Maximum altitude during event + +![](/img/pattern-query-altitude.png) + +* **Implementation Method** + +```SQL +SELECT * +FROM beidou +MATCH_RECOGNIZE ( + PARTITION BY device_id -- Partition by vehicle device ID + ORDER BY time -- Chronological ordering + MEASURES + FIRST(A.time) AS ts_s, -- Event start timestamp + LAST(A.time) AS ts_e, -- Event end timestamp + MAX(A.altitude) AS max_a -- Maximum altitude during event + PATTERN (A+) -- Match consecutive records above 500m + DEFINE + A AS A.altitude > 500 -- Define A as altitude > 500m +) +``` + +### 4.2 Safety Injection Operation Identification + +* **Business Background** + +Nuclear power plants require periodic safety tests (e.g., PT1RPA010 "Safety Injection Logic Test with 1 RPA 601KC") to verify equipment integrity. These tests cause characteristic flow pattern changes. The control system must identify these patterns to detect anomalies and ensure equipment safety. + +* **Data Structure** + +Sensor table contains these core fields: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | Data collection timestamp | +| pipe\_id | STRING | TAG | Pipe ID (partition key) | +| pressure | DOUBLE | FIELD | Pipe pressure | +| flow\_rate | DOUBLE | FIELD | Pipe flow rate (key metric) | + +* **Business Requirements** + +Identify PT1RPA010 flow pattern: Normal flow → Continuous decline → Extremely low flow (<0.5) → Continuous recovery → Normal flow. Extract core metrics: + +* Pattern start time (initial normal flow timestamp) +* Pattern end time (recovered normal flow timestamp) +* Extremely low phase start/end times +* Minimum flow rate during extremely low phase + +![](/img/pattern-query-flow.png) + +* **Implementation Method** + +```SQL +SELECT * FROM sensor MATCH_RECOGNIZE( + PARTITION BY pipe_id -- Partition by pipe ID + ORDER BY time -- Chronological ordering + MEASURES + A.time AS start_ts, -- Pattern start timestamp + E.time AS end_ts, -- Pattern end timestamp + FIRST(C.time) AS low_start_ts, -- Extremely low phase start + LAST(C.time) AS low_end_ts, -- Extremely low phase end + MIN(C.flow_rate) AS min_low_flow -- Minimum flow during low phase + ONE ROW PER MATCH -- Output one row per match + PATTERN(A B+? C+ D+? E) -- Match normal→decline→extremely low→recovery→normal + DEFINE + A AS flow_rate BETWEEN 2 AND 2.5, -- Initial normal flow + B AS flow_rate < PREV(B.flow_rate), -- Continuous decline + C AS flow_rate < 0.5, -- Extremely low threshold + D AS flow_rate > PREV(D.flow_rate), -- Continuous recovery + E AS flow_rate BETWEEN 2 AND 2.5 -- Normal recovery +); +``` + +### 4.3 Extreme Operational Gust (Sombrero Wind) Identification + +* **Business Background** + +In wind power generation, "extreme operational gusts (sombrero wind)" are short-duration (≈10s) sinusoidal gusts with prominent peaks that can cause physical turbine damage. Identifying these gusts and calculating their frequency helps assess turbine damage risks and guide maintenance. + +* **Data Structure** + +Turbine sensor table contains: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | Wind speed timestamp | +| speed | DOUBLE | FIELD | Wind speed (key metric) | + +* **Business Requirements** + +Identify sombrero wind pattern: Gradual speed decline → Sharp increase → Sharp decrease → Gradual recovery to initial value (≈10s total). Primary goal: count gust occurrences for risk assessment. + +![](/img/pattern-query-speed.png) + +* **Implementation Method** + +```SQL +SELECT COUNT(*) -- Count extreme gust occurrences +FROM sensor +MATCH_RECOGNIZE( + ORDER BY time -- Chronological ordering + MEASURES + FIRST(B.time) AS ts_s, -- Gust start timestamp + LAST(D.time) AS ts_e -- Gust end timestamp + PATTERN (B+ R+? F+? D+? E) -- Match sombrero wind pattern + DEFINE + -- Phase B: Gradual decline, initial speed>9, delta<2.5 + B AS speed <= AVG(B.speed) + AND FIRST(B.speed) > 9 + AND (FIRST(B.speed) - LAST(B.speed)) < 2.5, + -- Phase R: Sharp increase (above phase average) + R AS speed >= AVG(R.speed), + -- Phase F: Sharp decrease, peak>16 (crest threshold) + F AS speed <= AVG(F.speed) + AND MAX(F.speed) > 16, + -- Phase D: Gradual recovery, delta<2.5 + D AS speed >= AVG(D.speed) + AND (LAST(D.speed) - FIRST(D.speed)) < 2.5, + -- Phase E: Recovery to ±0.2 of initial value, total duration <11s + E AS speed - FIRST(B.speed) BETWEEN -0.2 AND 0.2 + AND time - FIRST(B.time) < 11 +); +``` \ No newline at end of file diff --git a/src/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md b/src/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md index 70e702b06..eeab8753d 100644 --- a/src/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md +++ b/src/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md @@ -986,3 +986,152 @@ MATCH_RECOGNIZE ( +---------+-----+-----------------------------+-----------------------------+------------+ Total line number = 2 ``` + +## 4. Practical Cases + +### 4.1 Altitude Monitoring + +* **Business Background** + +During oil product transportation, environmental pressure is directly affected by altitude: higher altitude means lower atmospheric pressure, which increases oil evaporation risks. To accurately assess natural oil loss, BeiDou positioning data must identify altitude anomalies to support loss evaluation. + +* **Data Structure** + +Monitoring table contains these core fields: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | Data collection timestamp | +| device\_id | STRING | TAG | Vehicle device ID (partition key) | +| department | STRING | FIELD | Affiliated department | +| altitude | DOUBLE | FIELD | Altitude (unit: meters) | + +* **Business Requirements** + +Identify altitude anomaly events: When vehicle altitude exceeds 500m and later drops below 500m, it constitutes a complete anomaly event. Calculate core metrics: + +* Event start time (first timestamp exceeding 500m) +* Event end time (last timestamp above 500m) +* Maximum altitude during event + +![](/img/pattern-query-altitude.png) + +* **Implementation Method** + +```SQL +SELECT * +FROM beidou +MATCH_RECOGNIZE ( + PARTITION BY device_id -- Partition by vehicle device ID + ORDER BY time -- Chronological ordering + MEASURES + FIRST(A.time) AS ts_s, -- Event start timestamp + LAST(A.time) AS ts_e, -- Event end timestamp + MAX(A.altitude) AS max_a -- Maximum altitude during event + PATTERN (A+) -- Match consecutive records above 500m + DEFINE + A AS A.altitude > 500 -- Define A as altitude > 500m +) +``` + +### 4.2 Safety Injection Operation Identification + +* **Business Background** + +Nuclear power plants require periodic safety tests (e.g., PT1RPA010 "Safety Injection Logic Test with 1 RPA 601KC") to verify equipment integrity. These tests cause characteristic flow pattern changes. The control system must identify these patterns to detect anomalies and ensure equipment safety. + +* **Data Structure** + +Sensor table contains these core fields: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | Data collection timestamp | +| pipe\_id | STRING | TAG | Pipe ID (partition key) | +| pressure | DOUBLE | FIELD | Pipe pressure | +| flow\_rate | DOUBLE | FIELD | Pipe flow rate (key metric) | + +* **Business Requirements** + +Identify PT1RPA010 flow pattern: Normal flow → Continuous decline → Extremely low flow (<0.5) → Continuous recovery → Normal flow. Extract core metrics: + +* Pattern start time (initial normal flow timestamp) +* Pattern end time (recovered normal flow timestamp) +* Extremely low phase start/end times +* Minimum flow rate during extremely low phase + +![](/img/pattern-query-flow.png) + +* **Implementation Method** + +```SQL +SELECT * FROM sensor MATCH_RECOGNIZE( + PARTITION BY pipe_id -- Partition by pipe ID + ORDER BY time -- Chronological ordering + MEASURES + A.time AS start_ts, -- Pattern start timestamp + E.time AS end_ts, -- Pattern end timestamp + FIRST(C.time) AS low_start_ts, -- Extremely low phase start + LAST(C.time) AS low_end_ts, -- Extremely low phase end + MIN(C.flow_rate) AS min_low_flow -- Minimum flow during low phase + ONE ROW PER MATCH -- Output one row per match + PATTERN(A B+? C+ D+? E) -- Match normal→decline→extremely low→recovery→normal + DEFINE + A AS flow_rate BETWEEN 2 AND 2.5, -- Initial normal flow + B AS flow_rate < PREV(B.flow_rate), -- Continuous decline + C AS flow_rate < 0.5, -- Extremely low threshold + D AS flow_rate > PREV(D.flow_rate), -- Continuous recovery + E AS flow_rate BETWEEN 2 AND 2.5 -- Normal recovery +); +``` + +### 4.3 Extreme Operational Gust (Sombrero Wind) Identification + +* **Business Background** + +In wind power generation, "extreme operational gusts (sombrero wind)" are short-duration (≈10s) sinusoidal gusts with prominent peaks that can cause physical turbine damage. Identifying these gusts and calculating their frequency helps assess turbine damage risks and guide maintenance. + +* **Data Structure** + +Turbine sensor table contains: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | Wind speed timestamp | +| speed | DOUBLE | FIELD | Wind speed (key metric) | + +* **Business Requirements** + +Identify sombrero wind pattern: Gradual speed decline → Sharp increase → Sharp decrease → Gradual recovery to initial value (≈10s total). Primary goal: count gust occurrences for risk assessment. + +![](/img/pattern-query-speed.png) + +* **Implementation Method** + +```SQL +SELECT COUNT(*) -- Count extreme gust occurrences +FROM sensor +MATCH_RECOGNIZE( + ORDER BY time -- Chronological ordering + MEASURES + FIRST(B.time) AS ts_s, -- Gust start timestamp + LAST(D.time) AS ts_e -- Gust end timestamp + PATTERN (B+ R+? F+? D+? E) -- Match sombrero wind pattern + DEFINE + -- Phase B: Gradual decline, initial speed>9, delta<2.5 + B AS speed <= AVG(B.speed) + AND FIRST(B.speed) > 9 + AND (FIRST(B.speed) - LAST(B.speed)) < 2.5, + -- Phase R: Sharp increase (above phase average) + R AS speed >= AVG(R.speed), + -- Phase F: Sharp decrease, peak>16 (crest threshold) + F AS speed <= AVG(F.speed) + AND MAX(F.speed) > 16, + -- Phase D: Gradual recovery, delta<2.5 + D AS speed >= AVG(D.speed) + AND (LAST(D.speed) - FIRST(D.speed)) < 2.5, + -- Phase E: Recovery to ±0.2 of initial value, total duration <11s + E AS speed - FIRST(B.speed) BETWEEN -0.2 AND 0.2 + AND time - FIRST(B.time) < 11 +); +``` \ No newline at end of file diff --git a/src/zh/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md b/src/zh/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md index b9689b0db..8f8df33fa 100644 --- a/src/zh/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md +++ b/src/zh/UserGuide/Master/Table/User-Manual/Pattern-Query_timecho.md @@ -984,3 +984,152 @@ MATCH_RECOGNIZE ( +---------+-----+-----------------------------+-----------------------------+------------+ Total line number = 2 ``` + +## 4. 实际案例 + +### 4.1海拔高度监测 + +* **业务背景** + +石油运输车辆在油品运输过程中,海拔高度会直接影响环境气压:海拔越高,气压越低,油品挥发风险越高。为精准评估油品自然损耗情况,需通过北斗定位数据识别海拔异常事件,为损耗评估提供数据支撑。 + +* **数据结构** + +监测数据表包含以下核心字段: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | 数据采集时间 | +| device\_id | STRING | TAG | 车辆设备编号(分区键) | +| department | STRING | FIELD | 所属部门 | +| altitude | DOUBLE | FIELD | 海拔高度(单位:米) | + +* **业务需求** + +识别运输车辆的海拔异常事件:当车辆海拔高度超过 500 米,后续又降至 500 米以下时,视为一个完整的异常事件。需计算每个事件的核心指标: + +* 事件起始时间(海拔首次超过 500 米的时间); +* 事件结束时间(海拔最后一次高于 500 米的时间); +* 事件期间该车辆的最大海拔值。 + +![](/img/pattern-query-altitude.png) + +* **实现方法** + +```SQL +SELECT * +FROM beidou +MATCH_RECOGNIZE ( + PARTITION BY device_id -- 按车辆设备分区 + ORDER BY time -- 按时间排序 + MEASURES + FIRST(A.time) AS ts_s, -- 事件起始时间 + LAST(A.time) AS ts_e, -- 事件结束时间 + MAX(A.altitude) AS max_a -- 事件最大海拔 + PATTERN (A+) -- 匹配连续的海拔超500米的记录 + DEFINE + A AS A.altitude > 500 -- 定义A为海拔高于500米的记录 +) +``` + +### 4.2 安全注入操作识别 + +* **业务背景** + +核电站需定期执行安全检测试验(如 PT1RPA010《用 1 RPA 601KC 进行安全注入逻辑试验》),以验证发电设备无损伤。该类试验会导致水管流量呈现特征性变化,中控系统需识别该流量模式,及时汇报异常行为,保障设备安全。 + +* **数据结构** + +传感器数据表包含以下核心字段: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | 数据采集时间 | +| pipe\_id | STRING | TAG | 水管编号(分区键) | +| pressure | DOUBLE | FIELD | 水管压力 | +| flow\_rate | DOUBLE | FIELD | 水管流量(核心监测值) | + +* **业务需求** + +识别 PT1RPA010 试验对应的流量特征模式:正常流量→持续下降→极低流量(<0.5)→持续回升→恢复正常流量。需提取该模式的核心指标: + +* 模式整体起始时间(初始正常流量的时间); +* 模式整体终止时间(恢复正常流量的时间); +* 极低流量阶段的起始 / 结束时间; +* 极低流量阶段的最小流量值。 + +![](/img/pattern-query-flow.png) + +* **实现方法** + +```SQL +SELECT * FROM sensor MATCH_RECOGNIZE( + PARTITION BY pipe_id -- 按水管编号分区 + ORDER BY time -- 按时间排序 + MEASURES + A.time AS start_ts, -- 模式整体起始时间 + E.time AS end_ts, -- 模式整体终止时间 + FIRST(C.time) AS low_start_ts, -- 极低流量起始时间 + LAST(C.time) AS low_end_ts, -- 极低流量结束时间 + MIN(C.flow_rate) AS min_low_flow -- 极低流量最小值(补充原代码缺失字段名) + ONE ROW PER MATCH -- 每个匹配模式仅输出1行结果 + PATTERN(A B+? C+ D+? E) -- 匹配正常→下降→极低→回升→正常的流量模式 + DEFINE + A AS flow_rate BETWEEN 2 AND 2.5, -- 初始正常流量 + B AS flow_rate < PREV(B.flow_rate), -- 流量持续下降 + C AS flow_rate < 0.5, -- 极低流量阈值 + D AS flow_rate > PREV(D.flow_rate), -- 流量持续回升 + E AS flow_rate BETWEEN 2 AND 2.5 -- 恢复正常流量 +); +``` + +### 4.3 极端运行阵风(草帽风)识别 + +* **业务背景** + +风力发电场景中,“极端运行阵风(草帽风)” 是一种短时间(约 10 秒)、波峰显著的正弦形阵风,这类阵风会对风机造成物理损伤。识别该类阵风并统计发生频率,可有效评估风机受损风险,指导设备维护。 + +* **数据结构** + +风机传感器数据表核心字段: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | 风速采集时间 | +| speed | DOUBLE | FIELD | 风机处风速(核心指标) | + +* **业务需求** + +识别 “草帽风” 的特征模式:风力缓慢下降→急剧增加→急剧减少→缓慢增加至初始值(全程约 10 秒)。核心目标是统计该类阵风的发生次数,为风机风险评估提供依据。 + +![](/img/pattern-query-speed.png) + +* **实现方法** + +```SQL +SELECT COUNT(*) -- 统计极端阵风发生次数 +FROM sensor +MATCH_RECOGNIZE( + ORDER BY time -- 按时间排序 + MEASURES + FIRST(B.time) AS ts_s, -- 阵风起始时间 + LAST(D.time) AS ts_e -- 阵风结束时间 + PATTERN (B+ R+? F+? D+? E) -- 匹配草帽风的风速变化模式 + DEFINE + -- B阶段:风速缓慢下降,初始风速>9,首尾风速差<2.5 + B AS speed <= AVG(B.speed) + AND FIRST(B.speed) > 9 + AND (FIRST(B.speed) - LAST(B.speed)) < 2.5, + -- R阶段:风速急剧增加(高于阶段平均风速) + R AS speed >= AVG(R.speed), + -- F阶段:风速急剧减少,阶段最大风速>16(波峰阈值) + F AS speed <= AVG(F.speed) + AND MAX(F.speed) > 16, + -- D阶段:风速缓慢增加,首尾风速差<2.5 + D AS speed >= AVG(D.speed) + AND (LAST(D.speed) - FIRST(D.speed)) < 2.5, + -- E阶段:风速恢复至初始值±0.2,全程时长<11秒 + E AS speed - FIRST(B.speed) BETWEEN -0.2 AND 0.2 + AND time - FIRST(B.time) < 11 +); +``` diff --git a/src/zh/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md b/src/zh/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md index b9689b0db..12537de93 100644 --- a/src/zh/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md +++ b/src/zh/UserGuide/latest-Table/User-Manual/Pattern-Query_timecho.md @@ -984,3 +984,155 @@ MATCH_RECOGNIZE ( +---------+-----+-----------------------------+-----------------------------+------------+ Total line number = 2 ``` + +## 4. 实际案例 + +### 4.1海拔高度监测 + +* **业务背景** + +石油运输车辆在油品运输过程中,海拔高度会直接影响环境气压:海拔越高,气压越低,油品挥发风险越高。为精准评估油品自然损耗情况,需通过北斗定位数据识别海拔异常事件,为损耗评估提供数据支撑。 + +* **数据结构** + +监测数据表包含以下核心字段: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | 数据采集时间 | +| device\_id | STRING | TAG | 车辆设备编号(分区键) | +| department | STRING | FIELD | 所属部门 | +| altitude | DOUBLE | FIELD | 海拔高度(单位:米) | + +* **业务需求** + +识别运输车辆的海拔异常事件:当车辆海拔高度超过 500 米,后续又降至 500 米以下时,视为一个完整的异常事件。需计算每个事件的核心指标: + +* 事件起始时间(海拔首次超过 500 米的时间); +* 事件结束时间(海拔最后一次高于 500 米的时间); +* 事件期间该车辆的最大海拔值。 + +![](/img/pattern-query-altitude.png) + +* **实现方法** + +```SQL +SELECT * +FROM beidou +MATCH_RECOGNIZE ( + PARTITION BY device_id -- 按车辆设备分区 + ORDER BY time -- 按时间排序 + MEASURES + FIRST(A.time) AS ts_s, -- 事件起始时间 + LAST(A.time) AS ts_e, -- 事件结束时间 + MAX(A.altitude) AS max_a -- 事件最大海拔 + PATTERN (A+) -- 匹配连续的海拔超500米的记录 + DEFINE + A AS A.altitude > 500 -- 定义A为海拔高于500米的记录 +) +``` + +### 4.2 安全注入操作识别 + +* **业务背景** + +核电站需定期执行安全检测试验(如 PT1RPA010《用 1 RPA 601KC 进行安全注入逻辑试验》),以验证发电设备无损伤。该类试验会导致水管流量呈现特征性变化,中控系统需识别该流量模式,及时汇报异常行为,保障设备安全。 + +* **数据结构** + +传感器数据表包含以下核心字段: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | 数据采集时间 | +| pipe\_id | STRING | TAG | 水管编号(分区键) | +| pressure | DOUBLE | FIELD | 水管压力 | +| flow\_rate | DOUBLE | FIELD | 水管流量(核心监测值) | + +* **业务需求** + +识别 PT1RPA010 试验对应的流量特征模式:正常流量→持续下降→极低流量(<0.5)→持续回升→恢复正常流量。需提取该模式的核心指标: + +* 模式整体起始时间(初始正常流量的时间); +* 模式整体终止时间(恢复正常流量的时间); +* 极低流量阶段的起始 / 结束时间; +* 极低流量阶段的最小流量值。 + +![](/img/pattern-query-flow.png) + +* **实现方法** + +```SQL +SELECT * FROM sensor MATCH_RECOGNIZE( + PARTITION BY pipe_id -- 按水管编号分区 + ORDER BY time -- 按时间排序 + MEASURES + A.time AS start_ts, -- 模式整体起始时间 + E.time AS end_ts, -- 模式整体终止时间 + FIRST(C.time) AS low_start_ts, -- 极低流量起始时间 + LAST(C.time) AS low_end_ts, -- 极低流量结束时间 + MIN(C.flow_rate) AS min_low_flow -- 极低流量最小值(补充原代码缺失字段名) + ONE ROW PER MATCH -- 每个匹配模式仅输出1行结果 + PATTERN(A B+? C+ D+? E) -- 匹配正常→下降→极低→回升→正常的流量模式 + DEFINE + A AS flow_rate BETWEEN 2 AND 2.5, -- 初始正常流量 + B AS flow_rate < PREV(B.flow_rate), -- 流量持续下降 + C AS flow_rate < 0.5, -- 极低流量阈值 + D AS flow_rate > PREV(D.flow_rate), -- 流量持续回升 + E AS flow_rate BETWEEN 2 AND 2.5 -- 恢复正常流量 +); +``` + +### 4.3 极端运行阵风(草帽风)识别 + +* **业务背景** + +风力发电场景中,“极端运行阵风(草帽风)” 是一种短时间(约 10 秒)、波峰显著的正弦形阵风,这类阵风会对风机造成物理损伤。识别该类阵风并统计发生频率,可有效评估风机受损风险,指导设备维护。 + +* **数据结构** + +风机传感器数据表核心字段: + +| **ColumnName** | DataType | Category | Comment | +| ---------------------- | ----------- | ---------- | ------------------------ | +| time | TIMESTAMP | TIME | 风速采集时间 | +| speed | DOUBLE | FIELD | 风机处风速(核心指标) | + +* **业务需求** + +识别 “草帽风” 的特征模式:风力缓慢下降→急剧增加→急剧减少→缓慢增加至初始值(全程约 10 秒)。核心目标是统计该类阵风的发生次数,为风机风险评估提供依据。 + +![](/img/pattern-query-speed.png) + +* **实现方法** + +```SQL +SELECT COUNT(*) -- 统计极端阵风发生次数 +FROM sensor +MATCH_RECOGNIZE( + ORDER BY time -- 按时间排序 + MEASURES + FIRST(B.time) AS ts_s, -- 阵风起始时间 + LAST(D.time) AS ts_e -- 阵风结束时间 + PATTERN (B+ R+? F+? D+? E) -- 匹配草帽风的风速变化模式 + DEFINE + -- B阶段:风速缓慢下降,初始风速>9,首尾风速差<2.5 + B AS speed <= AVG(B.speed) + AND FIRST(B.speed) > 9 + AND (FIRST(B.speed) - LAST(B.speed)) < 2.5, + -- R阶段:风速急剧增加(高于阶段平均风速) + R AS speed >= AVG(R.speed), + -- F阶段:风速急剧减少,阶段最大风速>16(波峰阈值) + F AS speed <= AVG(F.speed) + AND MAX(F.speed) > 16, + -- D阶段:风速缓慢增加,首尾风速差<2.5 + D AS speed >= AVG(D.speed) + AND (LAST(D.speed) - FIRST(D.speed)) < 2.5, + -- E阶段:风速恢复至初始值±0.2,全程时长<11秒 + E AS speed - FIRST(B.speed) BETWEEN -0.2 AND 0.2 + AND time - FIRST(B.time) < 11 +); +``` + + +