使用CLI进行高速跨域日志复制、历史数据重新索引与数仓投递
背景
使用日志服務是不是常常遇到如下煩惱?
現在使用CLI就可以幫你輕松實現這些操作。
介紹
復制數據(CopyData)支持將特定時間范圍內的logstore的數據復制到特定logstore中去。其具備如下一些特點:
前提
這里假設已經完成了CLI的安裝.
配置多區域賬戶
首先CLI中配置多個區域賬戶, 以便后續操作, 這一步也是一次性的. 如果之前已經做過, 這里可以跳過.
這里配置2個域的賬戶, 一個杭州公有云, 一個北京公有云.
> aliyun configure AKID****123 AKKEY****123 cn-hangzhou.log.aliyuncs.com > aliyun configure AKID****123 AKKEY****123 cn-beijing.log.aliyuncs.com bj注意:?這里的最后一個參數, 僅僅用于表明這個賬戶的名字, 以便后續使用. 不傳入默認是main, 也是默認使用的賬戶, 這里使用杭州的賬戶作為默認賬戶.
參考:
- 關于秘鑰的配置, 可以參考配置
- 關于日志服務在各個域的Endpoint地址, 可以參考入口服務
重新索引
如果因為某些特定原因,某個時間范圍內的日志沒有建立索引,無法被查詢和統計。可以如下操作將日志重新寫入,就可以實現重新索引的效果。
例如:
aliyunlog log copy_data --project="源project" --logstore="源logstore" --from_time="2018-09-05 0:0:0 CST" --to_time="2018-09-06 0:0:0 CST"這里將杭州區域的源project的源logstore中服務器在時間范圍["2018-09-05 0:0:0 CST","2018-09-06 0:0:0 CST")內接收到的數據,重新寫入到源logstore中去。
注意:
這里僅僅是復制一份數據進入目標logstore,并在寫入時自動對其索引,原來的沒有被索引的日志依然存在。
跨區域復制數據
有時需要將某一個logstore的日志遷移到另外一個logstore中去時,可以如下操作:
準備好目標logstore
假設目標logstore已經創建好了,并且配置好了索引。這一步操作可以在Web控制臺完成,也可以通過CLI的復制logstore配置來完成,或者使用CLI的create_logstore創建日志庫,再配置索引,通過命令get_index_config獲取索引,調用命令create_index來實現。
復制數據
例如:
aliyunlog log copy_data --project="源項目" --logstore="源logstore" --from_time="2018-09-05 0:0:0 CST" --to_time="2018-09-06 0:0:0 CST" --to_project="目標project" --to_logstore="目標logstore" --to_client="bj"這里將杭州區域的源project的源logstore中服務器在時間范圍["2018-09-05 0:0:0 CST","2018-09-06 0:0:0 CST")內接收到的數據,寫入到北京區域的目標project的目標logstore中去。
注意:
這里用--to_client指定操作目標project的賬戶為bj,是前面前提中配置的賬戶名。
投遞歷史日志到OSS/ODPS
日志服務的投遞任務配置好后,僅僅對新接受數據產生作用。這里也可以借助復制數據來實現投遞歷史日志的效果:
時間格式
時間格式推薦是%Y-%m-%d %H:%M:%S %Z, 如2018-01-24 17:00:00 CST, 但也支持其他合法的時間格式, 例如:Jan 01 2018 10:10:10 CST
注意:?時區不僅可以是CST,如果發現拿不到數據,可以改成特定時區例如 UTC-8 或者 UTC+8
CLI還支持更多其他格式的時間格式,例如2 day ago等,參考這里.
時間范圍
傳入的時間范圍, 需要注意幾點:
特殊的時間范圍
有時我們不關心數據的某一邊界, 例如期望獲得所有存儲的數據到某一天日期位置. 或者獲取從某一天開始到目前存儲的數據為止的話, 就可以使用特殊游標.
特殊游標包括begin和end. 例如:
aliyunlog log copy_data --project="p1" --logstore="l1" --from_time="begin" --to_time="2018-01-24 17:00:00 CST" --to_logstore="l2"這里復制所有2018-01-24 17:00:00 CST之前服務器接收到的日志到logstorel2。
又例如:
aliyunlog log copy_data --project="p1" --logstore="l1" --from_time="2018-01-24 17:00:00 CST" --to_time="end" --to_logstore="l2"這里復制所有2018-01-24 17:00:00 CST開始及之后服務器接收到的日志到logstorel2。
進一步參考
- 阿里云日志服務
- 阿里云日志服務CL
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的使用CLI进行高速跨域日志复制、历史数据重新索引与数仓投递的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 因吵架总被骂,阿里程序猿一气之下发明“情
- 下一篇: 如何在学习机器学习时学习数学?