Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tableau api 具有动态模式的Tableau WDC_Tableau Api - Fatal编程技术网

Tableau api 具有动态模式的Tableau WDC

Tableau api 具有动态模式的Tableau WDC,tableau-api,Tableau Api,查看Tableau web数据连接器的文档,我似乎必须在检索数据之前定义数据模式?是否可以从RESTAPI检索数据,然后从REST响应填充模式 用例是我有一个RESTAPI,我将参数传递给它,根据参数的不同,返回的数据模式会有所不同。来自API的JSON响应包括一个“schema”部分,用于记录JSON数据部分的schema部分 此处是JSON响应的简化版本: { 'fields': [{ 'name': 'id', 'fieldType': 'int' }, { 'na

查看Tableau web数据连接器的文档,我似乎必须在检索数据之前定义数据模式?是否可以从RESTAPI检索数据,然后从REST响应填充模式

用例是我有一个RESTAPI,我将参数传递给它,根据参数的不同,返回的数据模式会有所不同。来自API的JSON响应包括一个“schema”部分,用于记录JSON数据部分的schema部分

此处是JSON响应的简化版本:

{
'fields': [{
    'name': 'id',
    'fieldType': 'int'
},
{
    'name': 'name',
    'fieldType': 'string'
},
{
    'name': 'value',
    'fieldType': 'long'
}],
'data': [{
    'record1': {
        'id': '1',
        'name': 'larry',
        'value': '1596429'
    }
},
{
    'record2': {
        'id': '2',
        'name': 'Curly',
        'value': '5464767'
    }
}]
}
“模式”在json的“字段”部分中定义,数据全部在“数据”部分中,但模式将根据传递给API的参数而改变

我无法实现这一点,我发现的所有示例似乎都表明我需要定义模式,然后检索数据,但是如果返回的数据模式根据提交的参数发生更改,那么模型很快就会崩溃


是否有一种方法可以首先检索数据,然后根据API的响应数据动态定义模式?

没有任何东西可以阻止您在WDC的getSchema函数中提取数据。您可以在该阶段发出请求,从端点获得的“fields”对象中获取所需的信息,对其进行解析以匹配Tableau的需求,并将其作为模式传入。您仍然需要在getData函数中再次提取数据。您可以发出第二个请求,也可以将第一个请求中的数据存储在变量中,然后从该变量中提取数据。但是,请注意,如果刷新WDC并且架构已更改,则可能会弄乱在数据源上构建的任何工作表。

没有任何东西可以阻止您在WDC的getSchema函数中提取数据。您可以在该阶段发出请求,从端点获得的“fields”对象中获取所需的信息,对其进行解析以匹配Tableau的需求,并将其作为模式传入。您仍然需要在getData函数中再次提取数据。您可以发出第二个请求,也可以将第一个请求中的数据存储在变量中,然后从该变量中提取数据。但是,请注意,如果刷新WDC并且模式已更改,则可能会弄乱在数据源上构建的任何工作表