handsome-belgium-11927
09/30/2021, 8:05 PMquiet-kilobyte-82304
09/30/2021, 9:05 PMyour-tableau-url/metadata/graphiql
and run this. There are a few examples here that you can use. You can then map the o/p to DataHub’s chart or dashboard schema. We’re trying to add some automation around this process. I’ll be happy to share when we have something tangible. But the below query should get you started with ownership and datasources.
query ShowMeWorkbookEmbeddedFilters {
workbooks(filter: { name: "your-workbook-name" }) {
name
owner {
id
name
}
embeddedDatasources {
name
upstreamTables {
id
name
}
upstreamDatabases {
id
name
}
}
}
}
lemon-airline-17821
10/08/2021, 5:01 PMtags
connected to a Tableau Workbook. We use this very often to identify the metric which is shown in the report/charts/tables.handsome-belgium-11927
10/13/2021, 1:37 PMrapid-sundown-8805
10/28/2021, 6:59 AMsparse-planet-56664
11/10/2021, 1:36 PMlittle-megabyte-1074
high-family-71209
12/06/2021, 9:53 AMlittle-megabyte-1074
brainy-wall-41694
02/09/2022, 11:20 AMlittle-megabyte-1074
brainy-wall-41694
02/09/2022, 6:24 PMdatahub/ingestion/source/tableau.py", line 651, in emit_sheets_as_charts
dashboard_path = sheet.get("containedInDashboards")[0].get("path", "")
IndexError: list index out of range
This happens during ingestion and only with some dashboards/sheets. I still haven't figured out why some only have problems.
Here's a more complete logrich-policeman-92383
02/10/2022, 7:45 AMsource:
type: tableau
config:
connect_uri: <https://mytableau.com>
site: Default
env: "Test"
#projects: ["default", "Project 2"]
#username: <mailto:username@acrylio.com|username@acrylio.com>
#password: pass
token_name: "root"
token_value: "fnsdifnsdkfnsdjfn8r834hr837fb"
#ingest_tags: True
ingest_owner: True
#default_schema_map:
# mydatabase: public
# anotherdatabase: anotherschema
sink:
type: "datahub-rest"
config:
server: "<http://localhost:8080>"
colossal-easter-99672
02/10/2022, 8:23 AMWorkbook - None ?
Dashboard - Dashboard
Sheet - Chart
Datasource - Dataset
Custom SQL - DatesetIs it right? There are some problems with that: 1. All users work in tableau with workbooks and without it users will have navigation problems. 2. Sheet can exist in Workbook without Dashboard.
brainy-wall-41694
02/10/2022, 10:50 AMcareful-insurance-60247
02/10/2022, 3:13 PM[ec2-user@ip-10-16-13-173 recipes]$ datahub --debug ingest -c tableau.yml
[2022-02-10 15:09:20,381] DEBUG {datahub.cli.ingest_cli:70} - DataHub CLI version: 0.8.26.1
[2022-02-10 15:09:20,385] DEBUG {datahub.cli.ingest_cli:76} - Using config: {'source': {'type': 'tableau', 'config': {'connect_uri': '<removed>', 'site': '1053', 'token_name': 'datahub', 'token_value': '<removed>', 'ingest_tags': True, 'ingest_owner': True}}, 'sink': {'type': 'datahub-rest', 'config': {'server': '<removed>'}}}
[2022-02-10 15:09:20,873] INFO {tableau.endpoint.auth:37} - Signed into , <removed> as user with id a1592316-07c5-422f-9cc9-9ea5104646fa
[2022-02-10 15:09:20,873] DEBUG {datahub.ingestion.run.pipeline:124} - Source type:tableau,<class 'datahub.ingestion.source.tableau.TableauSource'> configured
[2022-02-10 15:09:20,886] DEBUG {datahub.ingestion.run.pipeline:130} - Sink type:datahub-rest,<class 'datahub.ingestion.sink.datahub_rest.DatahubRestSink'> configured
[2022-02-10 15:09:20,886] INFO {datahub.cli.ingest_cli:86} - Starting metadata ingestion
[2022-02-10 15:09:20,886] INFO {tableau.endpoint.metadata:61} - Querying Metadata API
[2022-02-10 15:09:21,057] INFO {tableau.endpoint.auth:53} - Signed out
[2022-02-10 15:09:21,058] INFO {datahub.cli.ingest_cli:88} - Finished metadata ingestion
Source (tableau) report:
{'failures': {}, 'warnings': {}, 'workunit_ids': [], 'workunits_produced': 0}
Sink (datahub-rest) report:
{'downstream_end_time': None,
'downstream_start_time': None,
'downstream_total_latency_in_seconds': None,
'failures': [],
'records_written': 0,
'warnings': []}
Pipeline finished successfully
echoing-dress-35614
02/10/2022, 3:26 PMechoing-dress-35614
02/10/2022, 3:28 PMechoing-dress-35614
02/10/2022, 3:35 PMmyuser@PEI6433:~/projects/datahub (master #%)$ datahub --debug ingest -c tableau-patrick.yml
[2022-02-10 09:11:29,272] DEBUG {datahub.cli.ingest_cli:70} - DataHub CLI version: 0.8.26.1
[...SNIP...]
pipeline.run()
File "/home/myuser/.local/share/virtualenvs/datahub-uFRi8XjQ/lib/python3.8/site-packages/datahub/ingestion/run/pipeline.py", line 181, in run
for wu in itertools.islice(
File "/home/myuser/.local/share/virtualenvs/datahub-uFRi8XjQ/lib/python3.8/site-packages/datahub/ingestion/source/tableau.py", line 807, in get_workunits
yield from self.emit_workbooks(10)
File "/home/myuser/.local/share/virtualenvs/datahub-uFRi8XjQ/lib/python3.8/site-packages/datahub/ingestion/source/tableau.py", line 197, in emit_workbooks
yield from self.emit_sheets_as_charts(workbook)
File "/home/myuser/.local/share/virtualenvs/datahub-uFRi8XjQ/lib/python3.8/site-packages/datahub/ingestion/source/tableau.py", line 651, in emit_sheets_as_charts
dashboard_path = sheet.get("containedInDashboards")[0].get("path", "")
IndexError: list index out of range
myuser@PEI6433:~/projects/datahub (master #%)$
brainy-wall-41694
02/14/2022, 2:15 PMbrainy-wall-41694
02/14/2022, 2:34 PMshy-parrot-64120
02/14/2022, 8:48 PMFile "/usr/local/lib/python3.9/site-packages/tableauserverclient/server/server.py", line 161, in auth_token
raise NotSignedInError(error)
NotSignedInError: Missing authentication token. You must sign in first.
shy-parrot-64120
02/14/2022, 9:14 PM"No valid authentication was found"
error should be generated
however even none of 4 attributes are set i’l get
NotSignedInError: Missing authentication token. You must sign in first.
seems like default values are passed somehow
and authentication is made with some unpredictable values and silently failsshy-parrot-64120
02/14/2022, 9:32 PMearly-article-88153
02/14/2022, 11:30 PMshy-parrot-64120
02/15/2022, 10:11 AMSource (tableau) report:
{'workunits_produced': 0,
'workunit_ids': [],
'warnings': {},
'failures': {'tableau-metadata': ["Unable to retrieve metadata from tableau. Information: Connection: workbooksConnection Error: [{'message': "
"'Showing partial results. The request exceeded the 20000 node limit. Use pagination, additional filtering, or "
"both in the query to adjust results.', 'extensions': {'severity': 'WARNING', 'code': 'NODE_LIMIT_EXCEEDED', "
"'properties': {'nodeLimit': 20000}}}]"]}}
pagination neededcareful-insurance-60247
02/18/2022, 3:44 PMTraceback (most recent call last):
File "/usr/local/bin/datahub", line 8, in <module>
sys.exit(datahub())
File "/home/ec2-user/.local/lib/python3.7/site-packages/click/core.py", line 1128, in __call__
return self.main(*args, **kwargs)
File "/home/ec2-user/.local/lib/python3.7/site-packages/click/core.py", line 1053, in main
rv = self.invoke(ctx)
File "/home/ec2-user/.local/lib/python3.7/site-packages/click/core.py", line 1659, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ec2-user/.local/lib/python3.7/site-packages/click/core.py", line 1659, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ec2-user/.local/lib/python3.7/site-packages/click/core.py", line 1395, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ec2-user/.local/lib/python3.7/site-packages/click/core.py", line 754, in invoke
return __callback(*args, **kwargs)
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/telemetry/telemetry.py", line 196, in wrapper
raise e
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/telemetry/telemetry.py", line 190, in wrapper
res = func(*args, **kwargs)
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/cli/ingest_cli.py", line 87, in run
pipeline.run()
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/ingestion/run/pipeline.py", line 182, in run
self.source.get_workunits(), 10 if self.preview_mode else None
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/ingestion/source/tableau.py", line 807, in get_workunits
yield from self.emit_workbooks(10)
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/ingestion/source/tableau.py", line 197, in emit_workbooks
yield from self.emit_sheets_as_charts(workbook)
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/ingestion/source/tableau.py", line 657, in emit_sheets_as_charts
get_field_value_in_sheet(field, "description"),
File "/home/ec2-user/.local/lib/python3.7/site-packages/datahub/ingestion/source/tableau_common.py", line 423, in get_field_value_in_sheet
field_value = field.get("remoteField", {}).get(field_name, "")
AttributeError: 'NoneType' object has no attribute 'get'
acoustic-quill-54426
02/23/2022, 12:25 PMhundreds-photographer-13496
03/07/2022, 7:47 AMbrainy-wall-41694
03/10/2022, 9:01 PM