標籤數據導入
簡介
標籤有獨立的匯入工具
導入數據,需要先按格式要求準備好數據,並存放於 HDFS 之上。 再使用導入工具進行導入。
# | Q | A |
---|---|---|
1 | 運行環境 | 只能在部署神策分析的單機或集群機器上使用。 |
2 | 執行帳戶 | 需要切換到 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}
資料格式範例
欄位含義解釋:
# | 固定欄位名 | 含義 | 舉例 | 取值如何選擇? |
---|---|---|---|---|
1 | property | property 即屬性匹配欄位。 | ID 匹配場景,對於未登錄用戶,這個ID可以是cookie、設備ID等匿名 ID;對於登錄使用者,則建議使用後台分配的實際使用者ID。 詳見:識別使用者 | 這裡的ID匹配,要求與神策分析埋點、批量導入時,採用相同的ID定義。
|
2 | value | 標籤的取值,也可稱之為分層取值。 | 字串型態標籤:
| 以業務使用為出發點,做取值的設計。 |
數據類型
標籤數據類型 | 對應的 JSON 數據類型 | 舉例 | 限制 |
---|---|---|---|
數值型 NUMBER | NUMBER | 12 或 12.0 | -9E15 到 9E15 小數點後最多保留 3 位。 |
布爾值 BOOL | BOOL | true | 注意BOOL類型不能導入 false 值。 |
字串 STRING | STRING | "SensorsData" | 使用UTF-8編碼,單 value 長度建議不要超過1kB。 |
字串清單LIST | LIST |
CODE
| 字串元素的陣列,最大元素個數為500,其中每個元素使用UTF-8編碼后最大長度255位元組。 標籤的 LIST 類型,不做去重,可以包含重複元素。 |
日期時間 DATETIME | STRING | 以下幾種均可:
| 格式建議用 yyyy-mm-dd,年取值範圍是 [1900, 2099]。 |
標籤數據類型 | 對應的 JSON 數據類型 | 舉例 | 限制 |
---|---|---|---|
數值型 NUMBER | NUMBER | 12 或 12.0 | -9E15 到 9E15 小數點後最多保留 3 位。 |
布爾值 BOOL | BOOL | true | 注意BOOL類型不能導入 false 值。 |
字串 STRING | STRING | "SensorsData" | 使用UTF-8編碼,單 value 長度建議不要超過1kB。 |
字符串列表LIST | LIST |
CODE
| 字符串元素的数组,最大元素个数为 500,其中每个元素使用 UTF-8 编码后最大长度 255 字节。 标签的 LIST 类型,不做去重,可以包含重复元素。 |
日期時間 DATETIME | STRING | 以下幾種均可:
| 格式建議用 yyyy-mm-dd,年取值範圍是 \[1900, 2099\]。 |
參考資料:神策分析屬性資料型態定義。
使用工具導入
在神策分析的伺服器上,切換到 sa_cluster 使用者:
su - sa_cluster
啟動匯入工具:
# 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
參數說明:
# | 參數名 | 必傳(Y/N) | 取值舉例 | 含義 | 注意 |
---|---|---|---|---|---|
1 | --project | Y | "default" | 專案名 | |
2 | --user_name | N | "some_user" | 創建 tag 的使用者名,可選,預設 admin | 導入的時候,標籤或分群不存在的時候,會記錄建立者 |
3 | --name | Y | "en_name" | 標籤英文名 | 導入的時候,如果標籤或分群不存在時,標籤會預設為name加上user_tag_前綴;分群會預設為name加上user_group_前綴 |
4 | --cname | Y | "cn_name" | 標籤中文名 | |
5 | --dir | N | "dir0/dir1" | 標籤目錄設置,如:dir0/dir1,其中 dir0 是一級目錄名,dir1 是二級目錄名,不填寫目錄,則放置於未分類目錄中 | |
6 | --path | Y | /sa/runtime/some_dir/some_file_name | 數據文件目錄,這是一個 hdfs 目錄,或者一個 hdfs 檔案路徑 | 建議放在 /sa/runtime/ 下面, 其他目錄可能會有許可權問題 |
7 | --data_type | N | STRING | 數據類型,預設是 BOOL,可選:BOOL, STRING, NUMBER, DATETIME、LIST | 英文字母需要大寫 |
8 | --format, -f | N | JSON | 數據格式,預設 JSON,還有 LINE_OF_DISTINCT_ID (LINE_OF_DISTINCT_ID 為一行一個 distinct_id,只支援 BOOL 類型,值為 true) | |
9 | -b | N | "2018-10-25 10:00:00" | 資料基準時間(既版本,僅導入標籤有效) | |
10 | --overlay | N | 是否覆寫原有版本(棄用) | 加上該參數為 true,不加就是 false | |
11 | --tag_type | N | USER_TAG | 匯入的標籤類型,預設為 USER_TAG 即導入標籤。 選擇:USER_GROUP 分群;USER_TAG 標籤 | 英文字母需要大寫 |
12 | --matched_file,-mf | N | $first_id | 導入匹配屬性欄位,詳見:神策分析系統->元數據→用戶屬性 | 注意:$符號需要轉義一下,即:\$ |
13 | --sync_profile,-s | N | ID 匹配時,是否將不在全量表中的使用者 ID 同步到全量表中 | 不傳預設為false,加上該參數為 true | |
14 | --model,-mo | N | CREATE | CREATE創建、OVERWRITE 覆蓋 | CREATE第一次導入時使用,本質和OVERWRITE是一樣的 |
15 | --without_data_process,-w | N | 是否不等待數據處理完成後結束 | 不傳預設為 false,加上該參數為 true |
輸出範例:
正常情況下無輸出,發生異常時會將錯誤列印在主控台。