Scroll ignore | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
About Collectors
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
...
Pre-requisites
Python 3.6 8 - 3.1011
Access to K landing directory
Access to Power BI (see section below)
...
The collector requires a set of parameters to connect to and extract metadata from Power BI
FIELD | FIELD TYPE | DESCRIPTION | EXAMPLE | ||
---|---|---|---|---|---|
client | string | Onboarded client in Azure to access powerbi | |||
secret | string | Onboarded client secret in Azure to access powerbi | |||
tenant | string | Tenant ID of where powerbi exists | |||
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 | ||
timeout | integer | Timeout in seconds allowed against the powerbi APIs, for slower connections we recommend 30, default is 20 | 20 | ||
export_timeout | integer | Timeout in seconds allowed against the powerbi export pbix APIs, we recommend not setting this lower than 120 | 120 | ||
mapping | JSON | Mapping file of data source names against the onboarded host and database name in K | Assuming I have a “myDSN” data source name in powerbi, I’ll map it to host “myhost” and database “mydatabase” onboarded in K, snowflake type references are handled automatically
| ||
filter_flag | boolean | Should we be filtering out workspaces based on filter_workspaces as a whitelist? | false | ||
filter_workspaces | list<string> | List of workspace names that should be processed, this is case insensitive. Note that personal workspaces are excluded globally and will never be included even if you include it here. | [“data lab”, “analysis models”] | ||
compress | boolean | To gzip the output or not | true |
These parameters can be added directly into the run or you can use pass the parameters in via a JSON file. The following is an example you can use that is included in the example run code below.
...
Code Block | ||
---|---|---|
| ||
import os import argparse from kada_collectors.extractors.utils import load_config, get_hwm, publish_hwm, get_generic_logger from kada_collectors.extractors.powerbi import Extractor get_generic_logger('root') # Set to use the root logger, you can change the context accordingly or define your own logger _type = 'powerbi' dirname = os.path.dirname(__file__) filename = os.path.join(dirname, 'kada_{}_extractor_config.json'.format(_type)) parser = argparse.ArgumentParser(description='KADA PowerBI 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) |
...