Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. LookupKV interface 

    Code Block
    Object lookup(String key);
    Map<String, Object> multiLookup(String[] key);
  2. Implement LookupKV in KeyValueTable and ObjectMappedTable
  3. ScriptTransform changes
    1. Add configuration property for declaring lookup tables to use, properties for each table (e.g. dataset properties)

      Code Block
      "lookupTables": [
        {"name":"purchases", "type":"dataset", "properties": {
          "dataset":"purchases", "properties": {.. dataset properties ..}, "enable.cache":"true", "cache.expiry":1234}
        },
        {"name":"ip2geo", "type":"file", "properties":{"file":"/data/ip2geo.csv"}}
      ]
    2. configure(): verify datasets / tables exist
    3. transform(): execute lookup methods in a transaction, provide LookupKV instance to script
      1. Options usage for lookup usage: 

        Code Block
        var result = context.getTable("purchases").lookup(user);
        // or
        var result = tables["purchases"].lookup(user);
        // or
        var result = purchases.lookup(user);
      2. Options for multiLookup usage:

        Code Block
        var result = purchases.multiLookup(["alice", "bob"]);
        // do something with result["alice"]
        // do something with result["bob"]

...