神策用户畫像 技術指南 Current: 標籤數據導入 標籤數據導入 簡介標籤有獨立的匯入工具導入數據,需要先按格式要求準備好數據,並存放於 HDFS 之上。 再使用導入工具進行導入。#QA1運行環境只能在部署神策分析的單機或集群機器上使用。2執行帳戶需要切換到 sa_cluster 使用者執行,可使用如下命令: su - sa_cluster CODE 下文介紹使用方法。在 HDFS 上準備資料首先,你需要自行在 HDFS 上,按照以下格式準備需要導入的數據,數據格式為每行一個 JSON 字串。 行分隔符為 '\n'。 例: 数据格式示例 # 字串類型範例 {"property":"mike","value":"北京"} {"property":"john","value":"上海"} {"property":"alice","value":"北京"} {"property":"bob","value":"合肥"} # 數值類型範例 {"property":"alice","value":25} {"property":"bob","value":24} CODE 資料格式範例 欄位含義解釋:#固定欄位名含義舉例取值如何選擇?1propertyproperty 即屬性匹配欄位。ID 匹配場景,對於未登錄用戶,這個ID可以是cookie、設備ID等匿名 ID;對於登錄使用者,則建議使用後台分配的實際使用者ID。 詳見:識別使用者 使用者其他屬性匹配,詳見:神策分析系統->元數據->用戶屬性這裡的ID匹配,要求與神策分析埋點、批量導入時,採用相同的ID定義。 因為標籤需要與 Event/User 數據進行聯合分析,這就要求標籤與 Event/User 中的 distinct_id 的含義必須相同。 例如:存在一個事件:使用者 「mike@example.com」 在某時刻做了 PageVisit;存在一個標籤 「會員等級」:使用者 「uid00001」 會員等級為 「鉑金會員」。。 可能 「mike@example.com」 與 「uid00001」 是相同的使用者。 但我必須在神策分析中,先對這二者做過「使用者關聯」,而後再導入標籤 A,這二者才能在分析時正確被識別為一個人。 其他用戶屬性匹配 例如: 使用「性別」屬性匹配創建標籤,所有「性別」屬性值為「男」的標籤值為「帥哥」,所有「性別」屬性值為「女」的標籤值為「美女」 樣例: {"property":"男","value":"帥哥"} {"property":"女","value":"美女"}2value標籤的取值,也可稱之為分層取值。字串型態標籤:標籤名為 「會員等級」;value 可為「白銀會員」、「黃金會員」、「鑽石會員」。 數位型標籤:標籤名為 「年齡」;value 可以為 15、25、30、31。以業務使用為出發點,做取值的設計。數據類型標籤數據類型對應的 JSON 數據類型舉例限制數值型 NUMBERNUMBER12 或 12.0-9E15 到 9E15 小數點後最多保留 3 位。布爾值 BOOLBOOLtrue注意BOOL類型不能導入 false 值。字串 STRINGSTRING"SensorsData"使用UTF-8編碼,單 value 長度建議不要超過1kB。字串清單LISTLIST ["通用", "火車票", "理財", "外賣"] CODE 字串元素的陣列,最大元素個數為500,其中每個元素使用UTF-8編碼后最大長度255位元組。 標籤的 LIST 類型,不做去重,可以包含重複元素。日期時間 DATETIMESTRING以下幾種均可:"2015-06-19 17:51:21.234""2015-06-19 17:51:21""2015-06-19"格式建議用 yyyy-mm-dd,年取值範圍是 [1900, 2099]。標籤數據類型對應的 JSON 數據類型舉例限制數值型 NUMBERNUMBER12 或 12.0-9E15 到 9E15 小數點後最多保留 3 位。布爾值 BOOLBOOLtrue注意BOOL類型不能導入 false 值。字串 STRINGSTRING"SensorsData"使用UTF-8編碼,單 value 長度建議不要超過1kB。字符串列表LISTLIST ["通用", "火車票", "理財", "外賣"] CODE 字符串元素的数组,最大元素个数为 500,其中每个元素使用 UTF-8 编码后最大长度 255 字节。标签的 LIST 类型,不做去重,可以包含重复元素。日期時間 DATETIMESTRING以下幾種均可:"2015-06-19 17:51:21.234""2015-06-19 17:51:21""2015-06-19"格式建議用 yyyy-mm-dd,年取值範圍是 \[1900, 2099\]。參考資料:神策分析屬性資料型態定義。使用工具導入在神策分析的伺服器上,切換到 sa_cluster 使用者: su - sa_cluster CODE 啟動匯入工具: # sps1.5+ spsadmin import \ --project "default" \ --user_name "some_user" \ --name "en_name" \ --cname "cn_name" \ --dir "dir0/dir1" \ --path /sa/runtime/some_dir/some_file_name \ --data_type STRING \ -f JSON \ -b "2018-10-25 10:00:00" \ -mo CREATE \ -s \ -w CODE 參數說明:#參數名必傳(Y/N)取值舉例含義注意1--projectY"default"專案名2--user_nameN"some_user"創建 tag 的使用者名,可選,預設 admin導入的時候,標籤或分群不存在的時候,會記錄建立者3--nameY"en_name"標籤英文名導入的時候,如果標籤或分群不存在時,標籤會預設為name加上user_tag_前綴;分群會預設為name加上user_group_前綴4--cnameY"cn_name"標籤中文名5--dirN"dir0/dir1"標籤目錄設置,如:dir0/dir1,其中 dir0 是一級目錄名,dir1 是二級目錄名,不填寫目錄,則放置於未分類目錄中6--pathY/sa/runtime/some_dir/some_file_name數據文件目錄,這是一個 hdfs 目錄,或者一個 hdfs 檔案路徑建議放在 /sa/runtime/ 下面, 其他目錄可能會有許可權問題7--data_typeNSTRING數據類型,預設是 BOOL,可選:BOOL, STRING, NUMBER, DATETIME、LIST英文字母需要大寫8--format, -fNJSON數據格式,預設 JSON,還有 LINE_OF_DISTINCT_ID (LINE_OF_DISTINCT_ID 為一行一個 distinct_id,只支援 BOOL 類型,值為 true)9-bN"2018-10-25 10:00:00"資料基準時間(既版本,僅導入標籤有效)10--overlayN是否覆寫原有版本(棄用)加上該參數為 true,不加就是 false11--tag_typeNUSER_TAG匯入的標籤類型,預設為 USER_TAG 即導入標籤。 選擇:USER_GROUP 分群;USER_TAG 標籤英文字母需要大寫12--matched_file,-mfN$first_id導入匹配屬性欄位,詳見:神策分析系統->元數據→用戶屬性 支援ID匹配;設備ID傳$first_id,登錄ID傳$second_id;關於ID說明,詳見:識別使用者 默認使用設備 ID($first_id)匹配注意:$符號需要轉義一下,即:\$13--sync_profile,-sNID 匹配時,是否將不在全量表中的使用者 ID 同步到全量表中不傳預設為false,加上該參數為 true14--model,-moNCREATECREATE創建、OVERWRITE 覆蓋CREATE第一次導入時使用,本質和OVERWRITE是一樣的15--without_data_process,-wN是否不等待數據處理完成後結束不傳預設為 false,加上該參數為 true輸出範例: 正常情況下無輸出,發生異常時會將錯誤列印在主控台。 CODE