Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-htmltrue
scroll-epubtrue

Open in new tab

About Collectors

Collectors are extractors that are developed and managed by you (A customer of K).

...

  1. Deploying and orchestrating the extract code

  2. Managing a high water mark so the extract only pull the latest metadata

  3. Storing and pushing the extracts to your K instance.

...

Pre-requisites

...

Python 3.7 - 3.11

...

Collector Server Minimum Requirements

Insert excerpt
Collector Method
Collector Method
nameCollectorServerSpec
nopaneltrue

Cognos Requirements

...

FIELD

FIELD TYPE

DESCRIPTION

EXAMPLE

server_url

string

Cognos server address domain including the protocol (e.g. http:// https://) and the server port which is (usually 9300).

https://10.1.19.15:9300”

username

string

Username to log into Cognos server created in Step 1

“cognos”

password

string

Password to log into Cognos server for the user created in Step 1

 

namespace

string

The user namespace which the user will log into. By default the namespace is CognosEx

“CognosEx”

timeout

boolean

API timeout for Cognos APIs in seconds.

20

db_host

string

IP address or address of the Audit database.

“10.1.19.15”

db_username

string

Username for the Audit database created in Step 2

“kada”

db_password

list<string>

Password for the database user created in Step 2

 

db_port

integer

Default is usually 1433 for SQLServer

1433

db_name

string

Database name where the audit tables are stored

“Audit”

db_schema

string

Schema name where the audit tables are stored

dbo

db_driver

string

Driver name must match the one installed on the collector machine

ODBC Driver 17 for SQL Server"

db_use_kerberos

boolean

Does the database request impersonation, e.g. Kerberos

false

meta_only

boolean

For meta only set this to true otherwise leave it as false. If you do not have access to the Audit database then set this to true

false

output_path

string

Absolute path to the output location where files are to be written

“/tmp/output”

mask

boolean

To enable masking or not

true

mapping

json

This should be populate with the mapping.json output where each data source name mentioned is mapped to an onboarded K host

Leave this empty ({}} if unknown. Can be updated in K platform post extract.

Where analytics.adw is the onboarded database in K

Code Block
{
"somehost.adw": "analytics.adw"
}

compress

boolean

To gzip the output or not

true

...

Code Block
languagejson
{
    "server_url": "http://xxx:9300",
    "username": "",
    "password": "",
    "namespace": "",
    "timeout": 20,
    "db_host": "",
    "db_username": "",
    "db_password": "",
    "db_port": 8060,
    "db_name": "",
    "db_schema": "",
    "meta_db_use_kerberos": false,
    "meta_only": false,
    "output_path": "/tmp/output",
    "mask": false,
    "mapping": {},
    "compress": false
}

...

Code Block
languagepy
import os
import argparse
from kada_collectors.extractors.utils import load_config, get_hwm, publish_hwm, get_generic_logger
from kada_collectors.extractors.cognos import Extractor

get_generic_logger('root') # Set to use the root logger, you can change the context accordingly or define your own logger

_type = 'cognos'
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'kada_{}_extractor_config.json'.format(_type))

parser = argparse.ArgumentParser(description='KADA Cognos Extractor.')
parser.add_argument('--config', '-c', dest='config', default=filename, help='Location of the configuration json, default is the config json in the same directory as the script.')
parser.add_argument('--name', '-n', dest='name', default=_type, help='Name of the collector instance.')
args = parser.parse_args()

start_hwm, end_hwm = get_hwm(_typeargs.name)

ext = Extractor(**load_config(args.config))
ext.test_connection()
ext.run(**{"start_hwm": start_hwm, "end_hwm": end_hwm})

publish_hwm(_type, end_hwm)

...

Code Block
class Extractor(
    server_url: str = None,
    username: str = None,
    password: str = None,
    namespace: str = None,
    timeout: int = 20,
    db_host: str = None,
    db_username: str = None,
    db_password: str = None,
    db_port: int = None,
    db_name: str = None,
    db_schema: str = None,
    db_driver: str = None,
    db_use_kerberos: bool = None,
    meta_only: bool = False,
    mapping: dict = {},
    output_path: str = './output',
    mask: bool = False,
    compress: bool = False
) -> None

server_url: Cognos API URL
username: Cognos API Username
password: Cognos API Password
namespace: Cognos API Namespace
timeout: Cognos API Timeout
db_host: Database host
db_username: Database username
db_password: Database password
db_port: Database port
db_name: Database name
db_schema: Database schema
db_use_kerberos: Database impersonation required
meta_only: Only extract metadata
mapping: Mapping for the metadata
output_path: Output path for the files
mask: Mask the data
compress: Compress the data

...