AWS sagemaker-unified-studio documentation change
Summary
Replaced Spark UI verification steps with script-based lineage event retrieval
Security assessment
Updated troubleshooting methodology without security context. Script reference appears to be standard operational tooling.
Diff
diff --git a/sagemaker-unified-studio/latest/userguide/datazone-lineage-troubleshooting.md b/sagemaker-unified-studio/latest/userguide/datazone-lineage-troubleshooting.md index b5b5c090a..03eef2d40 100644 --- a//sagemaker-unified-studio/latest/userguide/datazone-lineage-troubleshooting.md +++ b//sagemaker-unified-studio/latest/userguide/datazone-lineage-troubleshooting.md @@ -87 +87 @@ The response appears as follows and the open-lineage event is written to the eve - 5. If the GetLineageEvent response's processingStatus is FAILED, contact AWS support by providing the GetLineageEvent response for the appropriate event and the response from GetAsset. + 5. If the GetLineageEvent response's processingStatus is FAILED, contact AWS Support by providing the GetLineageEvent response for the appropriate event and the response from GetAsset. @@ -222 +222 @@ The response appears as follows: - 3. If no job-runs are returned, check your job run schedule on the Amazon Redshift connection details. Reach out to AWS support providing the lineageJobId, connectionId, projectId and domainId if job runs are not executed per given schedule. + 3. If no job-runs are returned, check your job run schedule on the Amazon Redshift connection details. Reach out to AWS Support providing the lineageJobId, connectionId, projectId and domainId if job runs are not executed per given schedule. @@ -267,0 +268,2 @@ The response appears as follows: + * Your spark job working with S3 files would produce lineage events with s3 datasets, even when they are catalog'ed in AWS Glue. To generate events including AWS Glue tables and build proper lineage graph with AWS Glue assets, your spark job should instead work with glue tables. + @@ -289,0 +292,4 @@ The response appears as follows: + * If your Amazon SageMaker Unified Studio domain is in different region from that of job + + * Add this spark parameter: `"spark.openlineage.transport.region":"{region of your domain}"` + @@ -316,3 +322 @@ The response appears as follows: - * Following is the AWS CloudWatch log insights query to inspect generated events: - -Pass `--conf spark.log.level=DEBUG` while submitting the spark job. + * Following is the AWS CloudWatch log insights query to confirm events are submitted: @@ -321 +325 @@ Pass `--conf spark.log.level=DEBUG` while submitting the spark job. - | filter @message like /Emitting lineage completed successfully/ + | filter @message like /Successfully posted a LineageEvent:/ @@ -325,3 +329 @@ Pass `--conf spark.log.level=DEBUG` while submitting the spark job. - 4. Enable Spark UI to see if Spark Logical Plans and Spark Confs are generated properly: <https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-jobs.html#monitor-spark-ui-jobs-cli> - -Under Environment, all the spark configurations passed could be found. Verify the following are there: + 4. Fetch the lineage events generated from this job by executing the python script:[ retrieve_lineage_events.py](https://github.com/aws-samples/amazon-datazone-examples/tree/main/data_lineage) @@ -329,3 +331 @@ Under Environment, all the spark configurations passed could be found. Verify th - spark.extraListeners io.openlineage.spark.agent.OpenLineageSparkListener - spark.openlineage.transport.domainId <domain-id> - spark.openlineage.transport.type amazon_datazone_api + 5. Check if the dataset on which you expected lineage is present in any of the events @@ -332,0 +333 @@ Under Environment, all the spark configurations passed could be found. Verify th + * You can ignore empty events without any input/output nodes @@ -334 +335 @@ Under Environment, all the spark configurations passed could be found. Verify th - 5. After verifying lineage events are successfully processed in AWS CloudWatch logs, follow the steps in Not seeing lineage graph for events published programmatically to troubleshoot. + * Check if your dataset node has glue arn prefix in the namespace of the node or in the "symlink" facet of the node. If you don't see any node with glue arn prefix, it means your script is not using glue tables directly and hence lineage is not linked to glue asset. One way to workaround this is to update the script to work with glue tables. @@ -336 +337 @@ Under Environment, all the spark configurations passed could be found. Verify th - 6. If you are still unable to see lineage and it doesn't fall under the limitations category, reach out to AWS support by providing: + 6. If you are still unable to see lineage and it doesn't fall under the limitations category, reach out to AWS Support by providing: @@ -340 +341 @@ Under Environment, all the spark configurations passed could be found. Verify th - * Lineage event from GetLineageEvent response for successfully processed events to which lineage isn't visible + * Lineage events file from executing retrieve_lineage_events.py script @@ -383,0 +385,4 @@ Under Environment, all the spark configurations passed could be found. Verify th + * If your Amazon SageMaker Unified Studio domain is in different region from that of job + + * Add this spark parameter: `"spark.openlineage.transport.region":"{region of your domain}"` + @@ -401 +406 @@ Under Environment, all the spark configurations passed could be found. Verify th - * You can enable provide the CloudWatch log group or log destination for S3 path at the time of creating EC2 cluster. Refer <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-debugging.html> + * You can provide the CloudWatch log group or log destination for S3 path at the time of creating EC2 cluster. Refer <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-debugging.html> @@ -426,2 +430,0 @@ Under Environment, all the spark configurations passed could be found. Verify th -Pass `--conf spark.log.level=DEBUG` while submitting the spark job. - @@ -429 +432 @@ Pass `--conf spark.log.level=DEBUG` while submitting the spark job. - | filter @message like /Emitting lineage completed successfully/ + | filter @message like /Successfully posted a LineageEvent:/ @@ -433 +436,11 @@ Pass `--conf spark.log.level=DEBUG` while submitting the spark job. - 4. After verifying lineage events are successfully processed in AWS CloudWatch logs, follow the steps in Not seeing lineage graph for events published programmatically to troubleshoot. + 4. Fetch the lineage events generated from this job by executing the python script:[ retrieve_lineage_events.py](https://github.com/aws-samples/amazon-datazone-examples/tree/main/data_lineage) + + 5. Check if dataset on which you expected lineage is present in any of the events + + * You can ignore empty events without any input/output nodes + + * Check if your dataset node has namespace/name matching with the sourceIdentifier of the asset. If you don't see any node with asset's sourceIdentifier, refer to following docs on how to fix it: + + * [The importance of the sourceIdentifier attribute to lineage nodes](./datazone-data-lineage-sourceIdentifier-attribute.html) + + * [Linking dataset lineage nodes with assets imported into Amazon SageMaker Unified Studio](./datazone-data-lineage-linking-nodes.html) @@ -435 +448 @@ Pass `--conf spark.log.level=DEBUG` while submitting the spark job. - 5. If you are still unable to see lineage and it doesn't fall under the limitations category, reach out to AWS Support by providing: + 6. If you are still unable to see lineage and it doesn't fall under the limitations category, reach out to AWS Support team by providing: @@ -439 +452 @@ Pass `--conf spark.log.level=DEBUG` while submitting the spark job. - * Lineage event from GetLineageEvent response for successfully processed events to which lineage isn't visible + * Lineage events file from executing retrieve_lineage_events.py script