Joins Metadata Endpoints ======================== .. _join_left_nomatch_rows: Left Non Matching Rows ~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/leftnomatchrows :synopsis: Lists rows on the left hand side that did not join Lists rows on the left hand side that did not join .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/leftnomatchrows HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The response will be a :doc:`standard-response`, with a list of not matching rows on the left side of the join. .. _join_right_nomatch_rows: Right Non Matching Rows ~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/rightnomatchrows :synopsis: Lists rows on the right hand side that did not join Lists rows on the right hand side that did not join .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/rightnomatchrows HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The response will be a :doc:`standard-response`, with a list of not matching rows on the right side of the join. .. _join_inner_joined_rows: Inner Joined Rows ~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/innerrows :synopsis: Lists rows in the inner join Lists rows in the inner join - joining rows only .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/innerrows HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The response will be a :doc:`standard-response`, with a list of inner joining rows. The column names is in the form of L_e: for left hand side columns and R_e: for right hand side columns. .. _join_outer_joined_rows: Outer Joined Rows ~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/outerrows :synopsis: Lists rows in the outer join Lists rows in the outer join - joining rows and non-joining rows from both sides .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/innerrows HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The response will be a :doc:`standard-response`, with a list of outer joining rows. The column names is in the form of L_e: for left hand side columns and R_e: for right hand side columns. .. _join_left_outer_rows: Left Outer Joined Rows ~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/leftouterrows :synopsis: Lists rows in the left outer join Lists rows in the left outer join - joining rows and non-joining left rows .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/leftouterrows HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The response will be a :doc:`standard-response`, with a list of rows in the left outer join. The column names is in the form of L_e: for left hand side columns and R_e: for right hand side columns. .. _join_right_outer_rows: Right Outer Joined Rows ~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/rightouterrows :synopsis: Lists rows in the right outer join Lists rows in the right outer join - joining rows and non-joining right rows .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/rightouterrows HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The response will be a :doc:`standard-response`, with a list of rows in the right outer join. The column names is in the form of L_e: for left hand side columns and R_e: for right hand side columns. .. _join_venn_diagram: Venn Diagram ~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/venndiagram :synopsis: This view will bring back a single row of information for a particular join venn diagram. This view will bring back a single row of information for a particular join. The Venn component will access the information by position in most cases. .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/venndiagram HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The response will be a :doc:`standard-response`, with a single row of venn diagram information. The columns displayed are: .. csv-table:: :header: Human Name, Column Name, Description :widths: 25, 25, 50 "_LhsJoinLabel", "Left Name", "The (humanised) combined name of the entity and attributes on the left hand side of the join." "_LhsNullText", "Left Nulls", "Distribution of null values on the left hand side." "_left_not_match_values", "Left no match values", "Total non-matching values on left hand side of the join" "_left_not_match_rows", "Left no match rows", "This is the total non-matching rows on the left hand side of the join" "_LhsCardinality", "Left Cardinality", "Left hand side of the exact cardinality." "_RhsJoinLabel", "Right name", "The (humanised) combined name of the entity and attributes on the left hand side of the join." "_RhsNullText", "Right nulls", "Distribution of null values on the right hand side." "_right_not_match_values", "Right no match values", "This is the total non-matching values on right hand side of the join" "_right_not_match_rows", "Right no match rows", "This is the total non-matching rows on the right hand side of the join" "_RhsCardinality", "Right Cardinality", "The right hand side of the exact cardinality." "_common_values", "Matching Values", "Total matching values (values common to both sides)" "_inner_product", "Matching rows", "Total matching rows (rows containing matching values)" "_TotalRows", "Total rows", "The total number of rows involved in the join." The ``rows`` array will contain one row for the venn diagram information: .. code-block:: json { "dataRow": [ "Train Accounts(1) filtered : Account_id, Customer_id, Account_rep, Billing_address1 (value)", "", "0", "(0)", "1.004", "Train Accounts(3) filtered : Account_id, Customer_id, Account_rep, Billing_address1 (value)", "", "0", "(0)", "1.004", "1597", "(1618)", "1618" ] } .. _join_matching_values: Join Matching Values ~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/matchingvalues :synopsis: Lists distinct joined rows Lists distinct joined rows. Only displays values where both LEFT & RIGHT frequency are non-zero .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/matchingvalues HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The columns displayed are: .. csv-table:: :header: Human Name, Column Name, Description :widths: 25, 25, 50 "value", "Component ", ".{LHS_ATTRIBUTE} = .{RHS_ATTRIBUTE}" "LEFT", "Left Frequency", "The number of times this value occurs in the Left Hand Side entity." "RIGHT", "Right Frequency", "The number of times this value occurs in the Right Hand Side entity." "_product", "Join Product", "The number of joined rows produced by this value." pos in the above table is the position of the join expression in the join. There will be n components where n is the number of attribute on which joins is created. Example of columns: .. code-block:: json { "columns": [ { "columnisedName": "value0", "humanisedName": "Component 1", "description": "1.{Account_id} = 3.{Account_id}" }, { "columnisedName": "value1", "humanisedName": "Component 2", "description": "1.{Customer_id} = 3.{Customer_id}" }, { "columnisedName": "value2", "humanisedName": "Component 3", "description": "1.{Account_rep} = 3.{Account_rep}" }, { "columnisedName": "value3", "humanisedName": "Component 4", "description": "1.{Billing_address1} = 3.{Billing_address1}" }, { "columnisedName": "LEFT", "humanisedName": "Left Frequency", "description": "The number of times this value occurs in the Left Hand Side entity." }, { "columnisedName": "RIGHT", "humanisedName": "Right Frequency", "description": "The number of times this value occurs in the Right Hand Side entity." }, { "columnisedName": "_product", "humanisedName": "Join Product", "description": "The number of joined rows produced by this value." } ] } The response will be a :doc:`standard-response`, with a list of distinct joined rows. .. code-block:: json { "dataRow": [ "71002", "A00855", "610", "", "1", "1", "1" ] } .. _join_left_non_matching_values: Left Non Matching Values ~~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/leftnomatchvalues :synopsis: List of values on the left hand side that did not join List of values on the left hand side that did not join. Only displays values where the RIGHT frequency is zero. .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/leftnomatchvalues HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The columns displayed are: .. csv-table:: :header: Human Name, Column Name, Description :widths: 25, 25, 50 "value", "Component ", ".{LHS_ATTRIBUTE} = .{RHS_ATTRIBUTE}" "LEFT", "Left Frequency", "The number of times this value occurs in the Left Hand Side entity." pos in the above table is the position of the join expression in the join. There will be n components where n is the number of attribute on which joins is created. Example of columns: .. code-block:: json { "columns": [ { "columnisedName": "value0", "humanisedName": "Component 1", "description": "1.{Account_id} = 3.{Account_id}" }, { "columnisedName": "value1", "humanisedName": "Component 2", "description": "1.{Customer_id} = 3.{Customer_id}" }, { "columnisedName": "value2", "humanisedName": "Component 3", "description": "1.{Account_rep} = 3.{Account_rep}" }, { "columnisedName": "value3", "humanisedName": "Component 4", "description": "1.{Billing_address1} = 3.{Billing_address1}" }, { "columnisedName": "LEFT", "humanisedName": "Left Frequency", "description": "The number of times this value occurs in the Left Hand Side entity." } ] } The response will be a :doc:`standard-response`, with a list of values on the left hand side that did not join. .. _join_right_non_matching_values: Right Non Matching Values ~~~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /api/repositories/(string:repository)/joins/(string:joinId)/rightnomatchvalues :synopsis: List of values on the right hand side that did not join List of values on the right hand side that did not join. Only displays values where the LEFT frequency is zero. .. code-block:: http GET /api/repositories/jupiter/joins/1-1_2_3_4-3-1_2_3_4-2/rightnomatchvalues HTTP/1.1 Accept: application/json .. csv-table:: :header: Response Code, Reason :widths: 25, 75 200, No error 500, Server error The columns displayed are: .. csv-table:: :header: Human Name, Column Name, Description :widths: 25, 25, 50 "value", "Component ", ".{LHS_ATTRIBUTE} = .{RHS_ATTRIBUTE}" "RIGHT", "Right Frequency", "The number of times this value occurs in the Right Hand Side entity." pos in the above table is the position of the join expression in the join. There will be n components where n is the number of attribute on which joins is created. Example of columns: .. code-block:: json { "columns": [ { "columnisedName": "value0", "humanisedName": "Component 1", "description": "1.{Account_id} = 3.{Account_id}" }, { "columnisedName": "value1", "humanisedName": "Component 2", "description": "1.{Customer_id} = 3.{Customer_id}" }, { "columnisedName": "value2", "humanisedName": "Component 3", "description": "1.{Account_rep} = 3.{Account_rep}" }, { "columnisedName": "value3", "humanisedName": "Component 4", "description": "1.{Billing_address1} = 3.{Billing_address1}" }, { "columnisedName": "RIGHT", "humanisedName": "Right Frequency", "description": "The number of times this value occurs in the Right Hand Side entity." } ] } The response will be a :doc:`standard-response`, with a list of values on the right hand side that did not join.