Node-RED에서 Salesforce 데이터를 Treasure Data로 보내는 방법

소개



갔다



이 기사에서는 Node-RED를 사용하여 Salesforce에 포함 된 정보를 Treasure Data 데이터베이스로 보내는 방법에 대해 설명합니다. 이번에는 예로서 Salesforce에 포함된 계정(거래처) 정보 중 계정 이름과 계정 ID를 Treasure Data로 보냈습니다.

환경



Mac OSX Yosemite Version 10.10.5
Node-RED Version v0.11.0
Node.js 버전 v0.12.7

완성형





포인트



1. TD 노드의 인증에는 Write-Only API keys를 사용



TD 노드를 인증하면 Account와 Writekey를 묻습니다.


이 Writekey를 검색해야하므로 오른쪽 상단에서 My profile을 선택합니다.


오른쪽에 API Keys를 얻기 위한 비밀번호를 입력하는 곳이 있으므로 입력합니다.


API Keys가 표시되므로 Write-Only API keys를 복사하여 TD 노드에 입력합니다.


2. Splitter로 레코드 분리



Force 노드에 전달하는 쿼리는 다음과 같습니다.


이 쿼리를 전달하면 다음과 같은 출력을 얻을 수 있습니다.


이것을 Splitter 노드 에서 records 를 키로 설정해 나누면, 다음과 같은 레코드로 헤어집니다.


3. 중첩 제거



TD 노드에는 중첩된 데이터가 포함되지 않으므로 중첩된 속성 키를 제거합니다.
function 노드에 다음을 입력하여 attributes 키를 제거할 수 있습니다.
delete msg.payload['attributes'];
return msg;

제거한 형태가 여기.


이 개체를 Treasure Data로 보내면 Treasure Data 테이블에 데이터가 들어갑니다.

코드



force-TD
[{
    "id": "a16083e8.2530c",
    "type": "force",
    "username": "Username",
    "loginurl": "https://login.salesforce.com",
    "logintype": "Username-Password"
}, {
    "id": "d2c6ac93.938608",
    "type": "td",
    "account": "Username"
}, {
    "id": "2bca0383.da718c",
    "type": "td out",
    "td": "d2c6ac93.938608",
    "name": "",
    "database": "db_test",
    "table": "table1",
    "x": 703,
    "y": 206,
    "z": "b5890722.4a76f8",
    "wires": []
}, {
    "id": "7d9f5468.e69e94",
    "type": "inject",
    "name": "",
    "topic": "",
    "payload": "select ID,Name from Account",
    "payloadType": "string",
    "repeat": "",
    "crontab": "",
    "once": false,
    "x": 122,
    "y": 94,
    "z": "b5890722.4a76f8",
    "wires": [
        ["d63a4417.6ea9f"]
    ]
}, {
    "id": "d63a4417.6ea9f",
    "type": "force in",
    "force": "a16083e8.2530c",
    "operation": "query",
    "sobject": "",
    "extname": "",
    "name": "",
    "x": 215,
    "y": 206,
    "z": "b5890722.4a76f8",
    "wires": [
        ["4f9d4190.0da758"]
    ]
}, {
    "id": "dcd71ed2.c1acf8",
    "type": "function",
    "name": "Delete \"attributes\"",
    "func": "delete msg.payload['attributes'];\nreturn msg;\n",
    "outputs": 1,
    "noerr": 0,
    "x": 468,
    "y": 193,
    "z": "b5890722.4a76f8",
    "wires": [
        ["2bca0383.da718c"]
    ]
}, {
    "id": "4f9d4190.0da758",
    "type": "splitter",
    "name": "",
    "property": "payload.records",
    "x": 353,
    "y": 79,
    "z": "b5890722.4a76f8",
    "wires": [
        ["dcd71ed2.c1acf8"]
    ]
}]

좋은 웹페이지 즐겨찾기