并行全表扫描

yhxst69z  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(312)

我们需要列出一个cassandra表中存在的所有记录,除了cassandra kafka之外,没有其他技术可供选择,可能是redis或memcache。
我尝试过使用令牌函数fr实现相同的功能,但是每个cassandra集群节点有256个令牌,实际数据的令牌将在这些范围之间,为单个节点生成如此多的查询乘以集群中的总节点是不可行的,是一个好的解决方案。
redis也尝试过,但它也不支持所有键的完整数据获取,而且redic的完整扫描存在一致性问题。
该方法应该列出Cassandra中的所有记录
cassandra的单个节点的令牌范围有4个这样的节点如何用它定义有效的范围:令牌|{'-110767653085527406','-11899237173434452','-1391588707809180381','-1394091128308441003','-1454290790206147221','-14658396811882','-1510367355435659988','-159733513362243317','-16240811458138081415', '-168229075262213001', '-181492943272452920', '-1880973887796347199', '-1928606638447682076', '-1996927792402687332', '-2040293875245386739', '-2254793999558778584', '-22839319021629861', '-2331554848249702104', '-2379869377033037910', '-2415502069923563625', '-242505702341187347', '-2554870378500275896', '-2581963426036313684', '-2597277185289252380', '-270600990255590679', '-2769295379248843049', '-2773593424004668662', '-2779088327300923185', '-2882600279826978153', '-2902635794027806253', '-2934498214552531684', '-2952580781415168081', '-2976075019979540496', '-2976245638239977177', '-2983412321816148828', '-3109933176533204424', '-311846787798501197', '-3124939076761231316', '-3207861261030143293', '-3238862798824218873', '-33867353014374856', '-3553724852857338260', '-3560673059960522188', '-356648548720270905', '-362063928226840505', '-37058745295809774', '-3742275433208587070', '-3749955156988962773', '-3900882761202798088', '-3973974971666104363', '-398705848522233876', '-4053569000187706804', '-4074367680485751199', '-4095792766539323822', '-4096319368982665252', '-4129903903790768590', '-4307779691882475614', '-4335822085973976571', '-4341227537672046651', '-4512200475571998217', '-4534717518849679193', '-4779704075219767017', '-4784311089903325584', '-4801774998664423639', '-4804212231957235493', '-483770716427992088', '-4961119884427575269', '-5067995934113824964', '-5179591373759173007', '-5222898906811438602', '-525332699787023615', '-5301216212942836549', '-5310317000187572515', '-5319819741815758513', '-5406874697769855545', '-5434192774073302155', '-5511437742387618420', '-5569182247670740374', '-5613734126964485310', '-5695753794996236661', '-5709302843132412852', '-5764537668560605366', '-5821065912874338783', '-5863279366209886565', '-5934987261590356264', '-6133292976907132372', '-613918942431504582', '-617013752066297090', '-6382944484166916340', '-6466434510742133122', '-6469626679024796986', '-6503973804378181126', '-6588579521459992719', '-6836323321210332702', '-6889082380849183152', '-6925696393204831908', '-6958388753424715358', '-6981851521917267920', '-7026337701757077840', '-7034132335887364270', '-7177735139862626910', '-7217360169581796062', '-7250937350023353107', '-7254646596009961697', '-7273632288923135942', '-7681132805636687468', '-7684247424411677445', '-7719782854902809160', '-7722083163709043350', '-7883299635842594745', '-7884312097637684222', '-7932425995667387119', '-7933674004938295880', '-8003457508869571744', '-8012655526874157873', '-8088662569140472983', '-8089205747576449546', '-8110588364712294426', '-8143388211436035425', '-8154888661271397662', '-8216640585517555216', '-8363836864913573316', '-8387521487575455032', '-8514021467895643262', '-8562505084525044114', '-8605932634242447791', '-8627927601309539397', '-8781781221565097029', '-8826509744879101903', '-8829454439683469998', '-9060982903379845955', '-9077133642827708596', '-9103192004889706679', '-9161286921784303754', '-9173290295023729766', '-9202549283493769631', '-946825098300134575', '-985939805189037504', '1051371888105587236', '1179367297935764236', '1232222457632414798', '1250821404055945417', '1260552460427800308', '1330858755796015498', '1343386869233046957', '1416897686092659608', '1566479564079439007', '1751929023649226956', '1983332469209775985', '1991590117501237767', '2079091014003321437', '209817188594064906', '2227942341204832007', '2364752846080807659', '2384045839366872301', '245703437154148550', '2619183027115062748', '2643406976828815155', '2767300599666575624', '2960862668765972823', '3093398863419321623', '3147898346818654417', '323290155938151040', '3270693391160699545', '3272561623580700082', '3337607373305853720', '3342959566488433792', '3374600727832246512', '3492931041298713575', '3526040977939287418', '3590457424347478577', '3703008661325389509', '3705820410499710106', '3829082654461929531', '38672415515190730', '4011768573695751893', '4288242512566344183', '4550689156828245294', '4727167529636264869', '47496744286251620', '4782071184201611983', '4830336407465180494', '4835868359539472429', '4846746833382764940', '4975166681749963090', '4984830052240405637', '5175857549446124752', '5189207299783812170', '5213957910371403883', '5276806365656383699', '5334108094034916975', '5346658874365534505', '5350376569297936111', '5397358255276785420', '5439965368180564946', '5502246143195934054', '5574932980912993360', '56339286104975805', '567123899521905676', '5697905565184472939', '5733133555368835034', '5839216959068788722', '5849639838922928470', '5873721226954660761', '5942069210343820345', '6089870738989393030', '6091594696190765377', '6094019777779399599', '6139319371529794750', '621323007188797312', '6229127889800318515', '6234544190010010273', '6279368061674915925', '6298490213677918283', '6329370832225226002', '6329458732474081843', '6346560530861696360', '646927984547524601', '6472602971501415760', '6675656389057164855', '6752332711499618514', '6768402617936061566', '68540305057271675', '6918893643695601347', '7069981246789501654', '7145714029036953461', '7305513927425596150', '7353680600558295278', '7385719102005103560', '7514365100340213306', '7548719020866764605', '756345585078159614', '7743033418223242963', '7781933260936336072', '7887990247458547999', '7953895213828635565', '8022938827862376937', '812789197848120460', '8135520527417264202', '8186619481104495679', '8187771638081436991', '8189206199997031942', '8292652364304849642', '8383626225554909864', '8498860882761442441', '8717375307224044802', '8719782819012004616', '8781046959001311087', '885633447090523324', '8892282984535947868', '890767229038640710', '8923676315945778054', '9019032279281346301', '954752930319787116', '958845616512015696', '988062287542814249'}

rqcrx0a6

rqcrx0a61#

为什么你认为你不能做这么多的查询?这是对cassandra集群执行完全扫描的标准方法。您只需在实现时小心:
不要发出太多的查询-也许每个服务器一次扫描一个令牌范围
在发出查询时需要显式设置路由密钥-通常驱动程序无法检测使用 token 函数,所以它们将查询发送到随机协调器节点。所以应该手动完成,正如我看到的,gocql支持设置路由密钥。
您需要正确地处理整个范围的开始/结束,否则您可能会得到重复的数据或丢失一些数据。
我不是goMaven,但我有一个java示例,说明如何对cassandra数据库执行完全扫描—您可以从中获取逻辑。
p、 对于2.x-3.x版本的cassandra,每个服务器256个令牌是默认值,但不再推荐使用。默认值将在4.0中更改

相关问题