コード例 #1
0
def get_column_lineage() -> Response:
    """
    Call metadata service to fetch table lineage for a given table
    :return:
    """
    try:
        table_endpoint = _get_table_endpoint()
        table_key = get_query_param(request.args, 'key')
        column_name = get_query_param(request.args, 'column_name')
        url = f'{table_endpoint}/{table_key}/column/{column_name}/lineage'
        response = request_metadata(url=url, method=request.method)
        json = response.json()
        downstream = [
            marshall_lineage_table(table)
            for table in json.get('downstream_entities')
        ]
        upstream = [
            marshall_lineage_table(table)
            for table in json.get('upstream_entities')
        ]

        payload = {
            'downstream_entities': downstream,
            'upstream_entities': upstream,
        }
        return make_response(jsonify(payload), 200)
    except Exception as e:
        payload = jsonify({'msg': 'Encountered exception: ' + str(e)})
        return make_response(payload, HTTPStatus.INTERNAL_SERVER_ERROR)
コード例 #2
0
def get_feature_lineage() -> Response:
    """
    Call metadata service to fetch table lineage for a given feature
    :return:
    """
    try:
        feature_key = get_query_param(request.args, 'key')
        depth = get_query_param(request.args, 'depth')
        direction = get_query_param(request.args, 'direction')

        endpoint = _get_feature_endpoint()

        url = f'{endpoint}/{feature_key}/lineage?depth={depth}&direction={direction}'
        response = request_metadata(url=url, method=request.method)
        json = response.json()
        downstream = [
            marshall_lineage_table(table)
            for table in json.get('downstream_entities')
        ]
        upstream = [
            marshall_lineage_table(table)
            for table in json.get('upstream_entities')
        ]

        payload = {
            'downstream_entities': downstream,
            'upstream_entities': upstream,
        }
        return make_response(jsonify(payload), 200)
    except Exception as e:
        payload = jsonify({'msg': 'Encountered exception: ' + str(e)})
        return make_response(payload, HTTPStatus.INTERNAL_SERVER_ERROR)