日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用CLI进行高速跨域日志复制、历史数据重新索引与数仓投递

發布時間:2024/8/23 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用CLI进行高速跨域日志复制、历史数据重新索引与数仓投递 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

使用日志服務是不是常常遇到如下煩惱?

  • 開啟了字段索引卻無法對歷史日志起作用,而手動重建索引又很困難怎么辦?
  • 需要遷移數據,復制數據到其他區域logstore,寫代碼實現大并發復制又很復雜怎么辦?
  • 投遞日志到OSS/ODPS僅僅對新數據起作用,又想投遞歷史日志怎么辦?
  • 現在使用CLI就可以幫你輕松實現這些操作。

    介紹

    復制數據(CopyData)支持將特定時間范圍內的logstore的數據復制到特定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

    日志服務的投遞任務配置好后,僅僅對新接受數據產生作用。這里也可以借助復制數據來實現投遞歷史日志的效果:

  • 創建一個臨時的logstore(不需要配置索引)
  • 在臨時logstore上配置投遞OSS/ODPS的任務
  • 復制需要投遞的日志到目標logstore
  • 投遞結束后,刪除臨時logstore
  • 時間格式

    時間格式推薦是%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等,參考這里.

    時間范圍

    傳入的時間范圍, 需要注意幾點:

  • 這里的時間指的是服務器接受日志的時間
  • 時間的范圍是左閉右開[), 上面例子中16:00:00服務器接受到的日志會被拉取到, 但是17:00:00服務器所接受到的日志不會.
  • 特殊的時間范圍

    有時我們不關心數據的某一邊界, 例如期望獲得所有存儲的數據到某一天日期位置. 或者獲取從某一天開始到目前存儲的數據為止的話, 就可以使用特殊游標.

    特殊游標包括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进行高速跨域日志复制、历史数据重新索引与数仓投递的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。