簡介

標籤有獨立的匯入工具
導入數據,需要先按格式要求準備好數據,並存放於 HDFS 之上。 再使用導入工具進行導入。

#

Q

A

1

運行環境

只能在部署神策分析的單機或集群機器上使用。

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

資料格式範例
欄位含義解釋:

#

固定欄位名

含義

舉例

取值如何選擇?

1

property

property 即屬性匹配欄位。

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":"美女"}

2

value

標籤的取值,也可稱之為分層取值。

字串型態標籤:

  • 標籤名為 「會員等級」;
  • value 可為「白銀會員」、「黃金會員」、「鑽石會員」。

    數位型標籤:
  • 標籤名為 「年齡」;
  • value 可以為 15、25、30、31。

以業務使用為出發點,做取值的設計。

數據類型

標籤數據類型

對應的 JSON 數據類型

舉例

限制

數值型 NUMBER

NUMBER

12 或 12.0

-9E15 到 9E15 小數點後最多保留 3 位。

布爾值 BOOL

BOOL

true

注意BOOL類型不能導入 false 值。

字串 STRING

STRING

"SensorsData"

使用UTF-8編碼,單 value 長度建議不要超過1kB。

字串清單LISTLIST
["通用", "火車票", "理財", "外賣"]
CODE
字串元素的陣列,最大元素個數為500,其中每個元素使用UTF-8編碼后最大長度255位元組。
標籤的 LIST 類型,不做去重,可以包含重複元素。

日期時間 DATETIME

STRING

以下幾種均可:

  • "2015-06-19 17:51:21.234"
  • "2015-06-19 17:51:21"
  • "2015-06-19"

格式建議用 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。

字符串列表LISTLIST
["通用", "火車票", "理財", "外賣"]
CODE

字符串元素的数组,最大元素个数为 500,其中每个元素使用 UTF-8 编码后最大长度 255 字节。

标签的 LIST 类型,不做去重,可以包含重复元素。

日期時間 DATETIME

STRING

以下幾種均可:

  • "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

--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

導入匹配屬性欄位,詳見:神策分析系統->元數據→用戶屬性
支援ID匹配;設備ID傳$first_id,登錄ID傳$second_id;關於ID說明,詳見:識別使用者
默認使用設備 ID($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

輸出範例:

正常情況下無輸出,發生異常時會將錯誤列印在主控台。
CODE