Gigya Job Openings

Game Mechanics Dataflow

Skip to end of metadata
Go to start of metadata

The following dataflow extracts data from Gigya's account, then splits into two threads: one formats the account data to JSON format, and the other extracts achievement and challenge data from Gigya's Loyalty (Game Mechanics) platform and transforms them to DSV format. Then, both JSON and DSV files are loaded into SFTP.

 {
    "id": "...",
    "name": "Accounts + GM(produced 2 files)",
    "description": "accounts -> gm -> dsv -> ftp",
    "steps": [
      {
        "id": "account",
        "type": "datasource.read.gigya.account",
        "params": {
          "select": "UID,profile.firstName,profile.lastName,profile.gender,profile.nickname,profile.email",
          "where": "profile.firstName IS NOT NULL"
        },
        "next": [
          "gm",
          "jsonAccounts"
        ]
      },
      {
        "id": "gm",
        "type": "datasource.lookup.gigya.gm",
        "params": {
          "includeChallenges": "*"
        },
        "next": [
          "extractAchievements"
        ]
      },
      {
        "id": "extractAchievements",
        "type": "field.array.extract",
        "params": {
          "field": "achievements",
          "propagationFields": [
            "UID"
          ],
          "generateKey": true
        },
        "next": [
          "dsvGM"
        ]
      },
      {
        "id": "dsvGM",
        "type": "file.format.dsv",
        "params": {
          "fileName": "test_GM_${now}.csv",
          "columnSeparator": ","
        },
        "next": [
          "sftp"
        ]
      },
      {
        "id": "jsonAccounts",
        "type": "file.format.json",
        "params": {
          "fileName": "test_Accounts_${now:yyyy}.json",
          "createEmptyFile": false
        },
        "next": [
          "sftp"
        ]
      },
      {
        "id": "sftp",
        "type": "datasource.write.sftp",
        "params": {
          "host": "...",
          "username": "...",
          "password": "...",
          "remotePath": "..."
        }
      }
    ]
  }
  • No labels