From 42c9456d9d092da691316942ee9b0cff3a34b22c Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Mon, 10 Jun 2024 18:00:05 +0100 Subject: [PATCH] Autosave: 2024-06-10 18:00:05 --- .zk/notebook.db | Bin 3481600 -> 3481600 bytes zk/DynamoDB.md | 24 ++++++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.zk/notebook.db b/.zk/notebook.db index 49ebe6fe0fb16cfb5dee5c0fc7573a913c1c16e8..6445ac3e99b655c12557da3e19995743e520c474 100644 GIT binary patch delta 10832 zcmeHNd5jy^d7t-Y$RTHj*OGf*v#XW%ki_M=yVSk1Ev;0^M`X#`IMVKr9PYB_k}Hxc zX&u!oa+6h?HmMI71J_Qf6mHT21>#1Q7(17Opa`NSu8I^%QJ}H=M}Yt}kfN0KIS?#Lzb-ao~i$Bq?B3EWV^SXtszGQj+ zzXkhN@o&Yy7H^2(y&}EPWh2%r!>_E;a0j6QC7T?zGR@LOW)AM60ZzJT<%mR_RR3`p zKa%ky($#lgt-Sjx862>lU|j#go~TII$ze7+DR4~53a&Do>(lLw!%Ogw62cO~5n?5T zC&WgGK!`}dI&l!z`k0n{9#83Z)H7JCu$}+id5q{}d0| zISTRos+FCp%sk!oL7RApV<5g?wexFJmu8AxP`aV?KLx<5N>OdF1Q^PrULjCs1EmqNLjZ!X|Ocz%}c0x;w z)H%Yw2(8tpJutDnujm2@&ad>&n?Z(uZDO+hbXB& z&afo88gdcZG}JrgrIy9Tj4z$gtCT4v`PGm}=$_G-_UIK}?)MNHmfSvhgmPz~{K6i!h^|QGmGz2wEy#Y#>svUlgl4ad;N+oPUfgZpYCr6KK%3tz5 zhq04B3!6_Dj1IT5>{15$hVC68Tv912t0CwBJG`aTxruUWDh(FEnPb$FPNh`nDw>#N zt(x){-`{$k^2=FeA(xD=hMI8+P-@#(3TwOGgb+iO;yhMC>xT)S%Bbhlac~GslsQUs zhU2AB567wLIU`uz9O35DXTe$giXn6!dW3BbLCnElyre9}55TeM8HsYabLv?m5WBjF zEuB=e#dIpYs!4D2f*+#ZH+kTIon@2idE={iH%F`CFU_!)LQ%=WU|=U7)Bf&FzN?iC z8tnvFsxIgQ_mnUgk~DIa_lC9;+QZqKB6f>abP2rGWp#+cW`Xb-rBH-e7?zGxs#ZrN zp^aYUw{@KwqSmEMF}-L6pcDpws$cBYPF>~qt(3u`TuN^*C`BE^`uu@sfg=f)X43jN zT%hbCh7^XRQ=d67C61J66Q$>jfqI%)7nOVwr!&0D4|_e7SM!BjHVwlpfR9c4Db2z> z1`C_1HCHIqhGei5q}F_TLCHf?&4g|NAMK*+8DcrJq~bG}7oJkASL?dQ%h7WzcV;PF zoe#@~FJN*9YboZ_I374qJmCt;f-#n*32N6q|8>51%V`Tss-AzGa_I$(2vl97Y%Xtf zyVUJ%(O$d8?_7c5<42+g4p4Spfp-v%(%^BHfXPjS4vR1dQhTqac~4WiOsH9 za7}^9qZ}?l9NB{$%^Uq_h3fDfT5<|3n=4eix0@1J((w3+)EDVW~h`ADhJF^IlU1oKLJo#L&g1OR6Nlb6=59KQE|V4 zinUewOdS-%RQvG_UUlQRw%1{9PV0M%_tDWkIfdSxCC&h)E`hL_8VDURKnh(m z{mDDQ%O-%A255rzwl)HjC)dFQoc5IV8dx%G#*+BGump{VYFKixjwKJ>0ZUq|SdxY& z0ZaBpO<2;1-hkMK|l}?13b53 zK(kq{T1isO~06N4>3O?ZQ&Zz=D4Yr;LxE^Cm`nu5C!&yTMwC!I6bz0l@rg(@ z7>~q)q4-2N7#~lB#-d|^F(nX*CK75YSosneD96cLmxhxAmEq*(8wpxIdg+7jZHBT1 z${>^>D8o=jplpS*t@6S5w!44Z;&d@i*Of0`KTVvU_rZ3>3=enr{lU&xpQ3@yg zBtJQyF39H)iRHK|LvA9^!e$D4 zIlc_GR6Y078-kw2Ay?EUe>~E%a=X)W@;Ufco;?Ej%cIcESwYyeX_I_RP2{pk1?;7> zkU9y%B*ae5WMlOk$T_&>{?T}wqsJq-c+ zk%43qzum*p+&SYi#!{qkh}Z^&!>eQF4CUN^2B%U2-GfAVducm&z^}dYHNJJTw?^plw=+8U6dB#hW}VXo8gjaFzs~6(olmK) zN6f5l_U^0>{k)acZSJ@itLxGJREm0m$KAr>(Ar_jE$EySm_&KRN;#lfkZNPV$EoGK zqUZ8>*Gw!awTQ_u-ff}Q8ux=CLf(hTZ>VRdt6?rhs3nt&D=?A*S)pYTrnCUT#x}W; zyD>tr3XJgMqcu*5UEXD)gqYI95CO-+UbW~13&IKn@$o7@gz+dn#W(qQgCaV}6fLEX zHm$QnwD_1l$RHrtr4F&VM=pUhVel4dN1Kbi8+-g%)SRf**kfCJm#0rOF-UC1#2^>I zp9F>jd%d6F5L9W+vnlwxa>My7K&j;&$`XItigTTPeEc}48k<{iBpAeY+eQF z25U^#5?yei#*3jNz>5J-3}TFNca{39)EHOcBfZY8n{{qXv=_d@dRKf-hh2m}0W)IY zyH2TDav?VczPrwi?LOefPWUIn*DgtfAGaX69ZnBYnUl(FJ+4U2tKxED1iy zkXs!JCFIFXj&3WkXlMY~b1zV5Jx{htlGEk3evZ7MtI-_u8c4y`6*E`X zWyQU<4GKr@+4?4hx4%`D74h1H>phsm`8b`q)BnaX-?2dV}xn zxQDDb+IS1H>01y?N7#ZMbO&n8#W56BU9qnXWYI>#;_gOU(k;TG^S*>dnAGV z{Gx%j2uRjgTU_{+FdU}TE!v_Pz;DCvs2RXv=d5arC;Dpm4KPu<4Zl$x=p8G=dRUhl z%j~@n9R06Kjh$N&Rsg^62fH`ujgOnrdPYapDSA^uJ%MhPXYEnyM;} z+P}WT_f_@A!Mc7>_BO!W<2vSI;A)r)u9sa6uojvyX^Tta4e3Fu zX^?=j>o{xHARTVd4h;>m_f8sQ3!%U^~cGy>rusUGa`i$I5U zUVvtQ-FQKZ&xFaI+F?&4M6Qtpn0F?UfHA3)1iY)01iagFH)dd+t1<$#StA5^trLP3 zNHoAigEJz4<@;m=*oFII1Pus5^#6hFShV96+Z4r@+$(-~hPNY8(KaYQzDaFmV72ocm(-kKg|4+5dXp zU(5R4jg$Ub&JVf%FP-tMCmHJCT*R^N-^1)+=;Dfv>FBR0(Qbrf} zb$vaZos;oDN*E^tsH^BwKb$Bix>gBd_)<>+z7n#z>~@nNE-OVi8;>s)RqZ>E_ItIN zpACpB#|v-*Q9WwVb$EPm=wYF%vYV?zP4EMR7#SPI;{{z}!w!N8Lx4}`8M>^G|D^&#VVsC4nN02+ zMgjGG=!J3W0M4U0E5O^02OV&1prb)S&Y+65v7te1>2Aj))j()_)4{IFx2OGYesmJ> z;W`P}c#iYY%KLR(dENWT$p<~z)xMAp2A$D~9nr8qJRXZgV&gF_SfO6+pVPrd;6&&j F{|9o}qMQH# delta 6855 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 diff --git a/zk/DynamoDB.md b/zk/DynamoDB.md index bb9c8f4..cca6c84 100644 --- a/zk/DynamoDB.md +++ b/zk/DynamoDB.md @@ -31,15 +31,27 @@ There are two types of primary key available: - partition key: a simple primary key composed of one attribute only. Because the primary key is hash-mapped items can be retrieved very rapidly using the - primary key. + primary key. This would be the `personId` alone. - composite key: this comprises a partition key and a _sort key_ both of which - are attributes + are attributes. In a table that has a partition key and a sort key, it's + possible for multiple items to have the same partition key value. However, + those items must have different sort key values. You could then query by + either key or both. For instance using the `personId` along with `LastName` -However, you can also set one or more **secondary indices**. A secondary index -lets you query the data in the table using an alternate key, in addition to -queries against the primary key. DynamoDB doesn't require that you use indexes, -but they give your applications more flexibility when querying your data. +### Secondary index + +As well as the index provided by the primary key, you can set one or more +**secondary indices**. A secondary index lets you query the data in the table +using an alternate key. The main type of secondary index is a _global secondary +index_. GSIs are useful for querying data that needs to be accessed using +non-primary key attributes. For example, if you have a Users table with UserID +as the primary key but often need to fetch users by their Email, a GSI on Email +would be appropriate. + +**Global secondary indices** span the entire table allowing you to query accross +all partition keys whereas local secondary indices have the same partition key +as the ## Usage