一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將Cassandra數(shù)據(jù)轉(zhuǎn)換為RAPIDS可用格式

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-17 10:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在上一篇文章中,我談到了我們尋找將 SSTable 數(shù)據(jù)加載到 GPU 以進(jìn)行數(shù)據(jù)分析的最佳方法的過程。我們研究了將 Cassandra 數(shù)據(jù)轉(zhuǎn)換為RAPIDS可用格式的各種方法,并決定創(chuàng)建sstable to arrow ,一種自定義實(shí)現(xiàn),用于解析 sstable 并將其寫入 arrow 格式。在這篇文章中,我們將進(jìn)一步討論sstable-to-arrow,它的功能、局限性,以及如何在分析用例中使用它。

實(shí)施細(xì)節(jié)

Sstable-to-arrow是用C++17編寫的。它使用 Kaitai 結(jié)構(gòu)。庫(kù)以反 Clara 方式指定SSTable文件的布局。然后 Kaitai 結(jié)構(gòu)編譯器將這些 declarations 編譯成C++類,這些類可以包含在源代碼中,以將SSTables解析為內(nèi)存中的數(shù)據(jù)。然后,它獲取數(shù)據(jù)并將表中的每一列轉(zhuǎn)換為箭頭向量。Sstable to arrow隨后可以將arrow數(shù)據(jù)發(fā)送到任何客戶機(jī),在那里數(shù)據(jù)可以轉(zhuǎn)換為 cuDF 并可用于 GPU 分析。

當(dāng)前限制

SStable-to-arrow一次只能讀取一個(gè) SSTable 。要處理多個(gè) SSTable ,用戶必須為每個(gè) SSTable 配置 cuDF ,并使用 GPU 根據(jù)上次寫入 wins 語(yǔ)義合并它們。

sstable-to-arrow公開內(nèi)部卡桑德拉時(shí)間戳和墓碑標(biāo)記,以便可以在 cuDF 層進(jìn)行合并。

有些數(shù)據(jù),包括分區(qū)鍵和集群列的名稱,實(shí)際上無法從 SSTable 文件中推斷出來,因?yàn)樗鼈冃枰獙⒛J酱鎯?chǔ)在系統(tǒng)表中。

Cassandra 在刷新到 SSTables 之前將數(shù)據(jù)存儲(chǔ)在 memtables 和 commitlogs 中,因此僅使用sstable-to-arrow執(zhí)行的分析可能會(huì)過時(shí)/不實(shí)時(shí)。

目前,解析器只支持 Cassandra OSS 3 。 11 編寫的文件。

系統(tǒng)設(shè)置為掃描整個(gè) SSTables (而不是讀取特定分區(qū))。如果我們做謂詞下推,還需要做更多的工作。

不支持以下CQL 類型:counter、frozen和用戶定義的類型。

varint s 最多只能存儲(chǔ) 8 個(gè)字節(jié)。嘗試讀取具有較大varint的表將崩潰。

解析器最多只能讀取 64 列的表。

解析器將每個(gè) SSTable 加載到內(nèi)存中,因此當(dāng)前無法處理超出機(jī)器內(nèi)存容量的大型 SSTable 。

Decimal S轉(zhuǎn)換成8字節(jié)浮點(diǎn)值,因?yàn)闊o論是C++還是箭頭都沒有對(duì) Java BigIntege 或 BigDecimal 類的任意精度整數(shù)或小數(shù)點(diǎn)的本機(jī)支持。這意味著對(duì)十進(jìn)制列的操作將使用浮點(diǎn)運(yùn)算,這可能是不精確的。

Set 被視為列表,因?yàn)?Arrow 沒有集合的等效項(xiàng)。

路線圖和未來發(fā)展

該項(xiàng)目的最終目標(biāo)是在 RAPIDS 生態(tài)系統(tǒng)中包含某種形式的讀表功能,類似于cudf.read_csv。性能也是一個(gè)不斷發(fā)展的領(lǐng)域,我目前正在研究如何進(jìn)一步并行讀取 SSK 表,以充分利用 GPU 。我還致力于解決或改進(jìn)前面提到的限制,特別是擴(kuò)大對(duì)不同 CQL 類型的支持,并使程序能夠處理大型數(shù)據(jù)集。

如何使用sstable-to-arrow

您可以使用Docker運(yùn)行sstable-to-arrow。

pYYBAGJbfHWAdN7_AABuSCQ4LMo169.png

這將偵聽端口 9143 上的連接。它希望客戶端先發(fā)送消息,然后以以下格式發(fā)送數(shù)據(jù):

作為 8 字節(jié) big-endian 無符號(hào)整數(shù)傳輸?shù)募^表數(shù)

對(duì)于每個(gè)表:

其大?。ㄒ宰止?jié)為單位)為 8 字節(jié)大端無符號(hào)整數(shù)。

表的內(nèi)容采用箭頭 IPC 流格式。

然后,您可以使用任何客戶端從端口獲取數(shù)據(jù)。要開始使用示例 Python 客戶端,如果您的系統(tǒng)不支持 CUDA ,請(qǐng)執(zhí)行以下步驟:

poYBAGJbfHaAK3XnAAF0YG_R6qo311.png

如果您的系統(tǒng)支持 CUDA ,建議使用以下命令創(chuàng)建 conda 環(huán)境。在啟動(dòng)sstable-to-arrow服務(wù)器之前,您還需要傳遞 -x 標(biāo)志,以將所有不支持 cuDF 的類型轉(zhuǎn)換為十六進(jìn)制字符串。

pYYBAGJbfHiAQWjwAAFNORj9oqc128.png

要使用其他數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),您需要在計(jì)算機(jī)上使用原始 SSTable 文件。您可以在這是谷歌硬盤文件夾下載物聯(lián)網(wǎng)數(shù)據(jù)示例。您還可以使用存儲(chǔ)庫(kù)中的generate-data腳本生成物聯(lián)網(wǎng)數(shù)據(jù),也可以使用 CQL 和 Cassandra Docker 映像手動(dòng)創(chuàng)建表(有關(guān)更多信息,請(qǐng)參閱Cassandra 快速入門)。確保使用 Docker 卷與容器共享 SSTable 文件:

pYYBAGJbfHmAbL4rAABRPqoDm3I727.png

您還可以傳遞 -h 標(biāo)志以獲取有關(guān)其他選項(xiàng)的信息。如果希望從源代碼構(gòu)建項(xiàng)目,請(qǐng)按照GitHub 存儲(chǔ)庫(kù)中的步驟進(jìn)行操作。

SSTable to Parquet

Sstable-to-arrow還能夠?qū)?SSTable 數(shù)據(jù)保存為Parquet文件,這是存儲(chǔ)列數(shù)據(jù)的常用格式。同樣,它還不支持重復(fù)數(shù)據(jù)消除,因此它只需將 sstable 和所有元數(shù)據(jù)輸出到給定的拼花地板文件。

您可以通過傳遞-p標(biāo)志,然后傳遞要存儲(chǔ)拼花地板文件的路徑來運(yùn)行此操作:

poYBAGJbfHqAQ14BAAB3agOqh4U924.png

結(jié)論

Sstable-to-arrow是利用 Cassandra 數(shù)據(jù)進(jìn)行基于 GPU 的分析的早期但有希望的方法。該項(xiàng)目可在GitHub上獲得,并可通過碼頭中心作為 alpha 版本訪問。

關(guān)于作者

Alex Cai 于 2021 年在 DataStax 實(shí)習(xí),是哈佛大學(xué) 2025 級(jí)的學(xué)生。他熱衷于計(jì)算機(jī)、軟件和認(rèn)知科學(xué),在業(yè)余時(shí)間,他喜歡閱讀、研究語(yǔ)言學(xué)和玩他的貓。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5299

    瀏覽量

    106302
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4937

    瀏覽量

    131179
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7657

    瀏覽量

    90720
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何將算得的數(shù)據(jù)(10進(jìn)制)轉(zhuǎn)換為16進(jìn)制通過串口發(fā)送出?

    我用公式節(jié)點(diǎn)算得一組數(shù)據(jù),好比是1212,1313,1414等,這些數(shù)據(jù)轉(zhuǎn)為16進(jìn)制就是04BC,0521,0586,如何將十進(jìn)制的數(shù)據(jù)轉(zhuǎn)換為
    發(fā)表于 01-30 14:05

    如何將秒數(shù)轉(zhuǎn)換為時(shí)間字符串?

    請(qǐng)問如何將數(shù)值型秒數(shù)轉(zhuǎn)換為時(shí)間字符串?比如3600s轉(zhuǎn)換為01:00:00
    發(fā)表于 03-30 13:15

    如何將ADC代碼轉(zhuǎn)換為電壓

    (LSB)。公式1是可用于任何ADC的一般公式。如果ADC的輸出代碼為二進(jìn)制或二進(jìn)制補(bǔ)碼格式也沒有關(guān)系,只要將二進(jìn)制數(shù)正確轉(zhuǎn)換為其等效十進(jìn)制值即可。確定LSB大小完成ADC轉(zhuǎn)換后,
    發(fā)表于 07-23 04:45

    如何將excel格式的文件轉(zhuǎn)換為可以使用agilent intuilink波形編輯器查看的格式?

    嗨,請(qǐng)問有誰知道如何將excel格式的文件轉(zhuǎn)換為可以使用agilent intuilink波形編輯器查看的格式?我已附加文件我試圖上傳... 以上來自于谷歌翻譯 以下為原文Hi,pl
    發(fā)表于 08-06 14:38

    如何將傳統(tǒng)ANN轉(zhuǎn)換為SNN?

    SNN和ANN的區(qū)別是什么?如何將傳統(tǒng)ANN轉(zhuǎn)換為SNN?
    發(fā)表于 09-28 06:15

    請(qǐng)教大神LSM6DSM是如何將寄存器數(shù)據(jù)轉(zhuǎn)換為C度的?

    請(qǐng)教大神LSM6DSM是如何將寄存器數(shù)據(jù)轉(zhuǎn)換為C度的?
    發(fā)表于 12-12 07:44

    如何將PCM值轉(zhuǎn)換為.wav格式

    我的第二個(gè)問題仍然是如何將此 PCM 值轉(zhuǎn)換為 .wav 格式?我仍然需要對(duì)該領(lǐng)域有更深入的了解,這里的任何人都可以發(fā)表建議、鏈接技術(shù)文章并分享他們的經(jīng)驗(yàn)以供我學(xué)習(xí),我將不勝感激。
    發(fā)表于 01-06 07:35

    LM5066如何將數(shù)據(jù)轉(zhuǎn)換為負(fù)溫度?

    晶體管 MMBT3904LT1G 的集電極和基極連接到 lm5066 的二極管引腳。發(fā)射器接地。電路板被放置在 -20 攝氏度的熱室中。在讀取本地溫度寄存器 0x??8Dh 時(shí),我們收到的數(shù)據(jù)為 0xF0Ah。如何將數(shù)據(jù)
    發(fā)表于 05-11 07:54

    如何將PROTEL格式的文件轉(zhuǎn)換為AUTOCAD格式并打印

     怎樣PROTEL格式的文件轉(zhuǎn)換為AUTOCAD格式并打印呢: 在國(guó)內(nèi)Protel軟件一直大受歡迎,從DOS時(shí)代的Protel3.3(Autotrax 1.61)到現(xiàn)在具有EDA C
    發(fā)表于 03-25 15:01 ?0次下載

    數(shù)學(xué)原理:如何將ADC代碼轉(zhuǎn)換為電壓(第1篇)

    許多初步了解模數(shù)轉(zhuǎn)換器(ADC)的人想知道如何將ADC代碼轉(zhuǎn)換為電壓?;蛘撸麄兊膯栴}是針對(duì)特定應(yīng)用,例如:如何將ADC代碼轉(zhuǎn)換回物理量,如
    發(fā)表于 04-18 03:30 ?4373次閱讀

    cassandra數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)_ cassandra數(shù)據(jù)庫(kù)數(shù)據(jù)的寫入,讀取和刪除

     本文主要介紹 Cassandra數(shù)據(jù)的存儲(chǔ)格式,包括在內(nèi)存中的數(shù)據(jù)和磁盤中數(shù)據(jù)。Cassandra
    發(fā)表于 01-02 11:59 ?7877次閱讀
    <b class='flag-5'>cassandra</b><b class='flag-5'>數(shù)據(jù)</b>庫(kù)存儲(chǔ)結(jié)構(gòu)_ <b class='flag-5'>cassandra</b><b class='flag-5'>數(shù)據(jù)</b>庫(kù)<b class='flag-5'>數(shù)據(jù)</b>的寫入,讀取和刪除

    如何將Altera的SDC約束轉(zhuǎn)換為Xilinx XDC約束

    了解如何將Altera的SDC約束轉(zhuǎn)換為Xilinx XDC約束,以及需要更改或修改哪些約束以使Altera的約束適用于Vivado設(shè)計(jì)軟件。
    的頭像 發(fā)表于 11-27 07:17 ?5476次閱讀

    深入RAPIDS了解處理Cassandra數(shù)據(jù)的方法

      在這篇文章中,我們探索了一種處理 Cassandra SSTables 的尖端方法,方法是使用 RAPIDS 生態(tài)系統(tǒng)中的工具將它們直接解析到 GPU 設(shè)備內(nèi)存中。這將使用戶能夠以更少的初始設(shè)置更快地到達(dá)見解 ,并且還可以方便地 MIG 評(píng)估用 Python 編寫的現(xiàn)
    的頭像 發(fā)表于 04-17 10:38 ?1445次閱讀
    深入<b class='flag-5'>RAPIDS</b>了解處理<b class='flag-5'>Cassandra</b><b class='flag-5'>數(shù)據(jù)</b>的方法

    如何將簡(jiǎn)單的汽車轉(zhuǎn)換為無線遙控汽車

    電子發(fā)燒友網(wǎng)站提供《如何將簡(jiǎn)單的汽車轉(zhuǎn)換為無線遙控汽車.zip》資料免費(fèi)下載
    發(fā)表于 10-21 14:51 ?2次下載
    <b class='flag-5'>如何將</b>簡(jiǎn)單的汽車<b class='flag-5'>轉(zhuǎn)換為</b>無線遙控汽車

    如何bmp格式轉(zhuǎn)換為jpg格式

    我們?cè)谑褂檬静ㄆ鲿r(shí),經(jīng)常會(huì)需要將波形通過 U 盤導(dǎo)出,一般這種導(dǎo)出的波形的都是bmp 格式的,很多時(shí)候 bmp 格式的圖片不方便使用,需要轉(zhuǎn)換為 jpg 或 png 格式的。
    的頭像 發(fā)表于 08-08 15:08 ?1344次閱讀
    如何bmp<b class='flag-5'>格式</b><b class='flag-5'>轉(zhuǎn)換為</b>jpg<b class='flag-5'>格式</b>