這裏是我的卡珊德拉的架構,使用Datastax Enterprise如何篩選卡桑德拉TimeUUID/UUID豬
CREATE KEYSPACE applications
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
USE applications;
CREATE TABLE events(
bucket text,
id timeuuid,
app_id uuid,
event text,
PRIMARY KEY(bucket, id)
);
我想APP_ID豬進行篩選(TimeUUID)和ID(UUID),這裏是我的豬腳本。
events = LOAD 'cql://applications/events'
USING CqlStorage()
AS (bucket: chararray, id: chararray, app_id: chararray, event: chararray);
result = FOREACH events GENERATE bucket, id, app_id;
DESCRIBE result;
DUMP result;
下面是結果
result: {bucket: chararray,id: chararray,app_id: chararray}
(2014-02-28-04,?O]??4??p??M?,;??F? (|?Mb) \n
(2014-02-28-04,?O??4??p??M?,?h^@?E????)
(2014-02-28-04,?V???4??p??M?,;??F? (|?Mb)
(2014-02-28-04,?W?0?4??p??M?,?h^@?E????)
(2014-02-28-04,?X^p?4??p??M?,?h^@?E????)
通知,APP_ID,和id字段是二進制的,我需要一些UUID篩選,有什麼建議?
是的,你是對的。我遇到的下一個問題是如何試圖將轉換後的String UUID/TimeUUID存儲回UUID/TimeUUID類型中。由於我在Cassandra中使用CQL3,因此進行了類型檢查,它不喜歡UUID/TimeUUID的chararray版本。我假設我將不得不解析每個chararray以查看它是否是UUID/TimeUUID並在存儲之前將其轉換回來。我只是在Pig中放棄了UUID比較,然後繼續前進。 – cevaris