投射某列,每行进一项

Project certain column and carry on one entry in every row

我有一个如下所示的数据集

{
    "metadata":"d_meta_v_1.5.9",
    "data": {
            "a": {
                "T": [
                    1652167964645,
                    1652168781684,
                    1652168781720

                ],
                "V": [
                    1,
                    2,
                    3
                ]
            },
            "b": {
                "T": [
                    1652167961657,
                    1652168781720,
                    1652168781818
                ],
                "V": [
                    1,
                    3,
                    4
                
                ]
            },
            "c": {
                "T": [
                    1652167960194,
                    1652168787377

                ],
                "V": [
                    1,
                    3
                ]
            }
        }
}

我想select特定的列并在末尾进行元数据。这个问题的一部分在我之前的问题中起作用 我怎样才能得到我想要的输出?

Metadata, Time, a, b
d_meta_v_1.5.9, <Time>, <value of _a>, < value of b>
d_meta_v_1.5.9, <Time>, <value of _a>, < value of b>
d_meta_v_1.5.9, <Time>, <value of _a>, < value of b>
let requested_columns = dynamic(["a","b"]);
datatable(doc:dynamic)
[
    dynamic
    (
        {
            "metadata":"d_meta_v_1.5.9",
            "data": {
                    "a": {
                        "T": [
                            1652167964645,
                            1652168781684,
                            1652168781720
                        ],
                        "V": [
                            1,
                            2,
                            3
                        ]
                    },
                    "b": {
                        "T": [
                            1652167961657,
                            1652168781720,
                            1652168781818
                        ],
                        "V": [
                            1,
                            3,
                            4
                        ]
                    },
                    "c": {
                        "T": [
                            1652167960194,
                            1652168787377
                        ],
                        "V": [
                            1,
                            3
                        ]
                    }
                }
        }
    )
]
| project metadata = doc.metadata, data = doc.data
| mv-expand data = data
| extend key = tostring(bag_keys(data)[0])
| where key in (requested_columns)
| mv-expand T = data[key].T to typeof(long), V = data[key].V to typeof(long)
| evaluate pivot(key, take_any(V), metadata, T)
| order by T asc
metadata T a b
d_meta_v_1.5.9 1652167961657 1
d_meta_v_1.5.9 1652167964645 1
d_meta_v_1.5.9 1652168781684 2
d_meta_v_1.5.9 1652168781720 3 3
d_meta_v_1.5.9 1652168781818 4

Fiddle