Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan Masalah Amazon DataZone
Jika Anda mengalami masalah yang ditolak akses atau kesulitan serupa saat bekerja dengan Amazon, DataZone lihat topik di bagian ini.
Memecahkan masalah izin AWS Lake Formation untuk Amazon DataZone
Bagian ini berisi petunjuk pemecahan masalah untuk masalah yang mungkin Anda temui saat Anda. Konfigurasikan izin Lake Formation untuk Amazon DataZone
Pesan galat di Portal Data | Resolusi |
---|---|
Tidak dapat mengasumsikan Peran Akses Data. |
Kesalahan ini ditampilkan ketika Amazon DataZone tidak dapat mengasumsikan AmazonDataZoneGlueDataAccessRolebahwa Anda digunakan untuk mengaktifkan DefaultDataLakeBlueprintdi akun Anda. Untuk memperbaiki masalah ini, buka AWS IAM konsol di akun tempat aset data Anda ada dan pastikan bahwa mereka AmazonDataZoneGlueDataAccessRolememiliki hubungan kepercayaan yang tepat dengan prinsipal DataZone layanan Amazon. Untuk informasi selengkapnya, silakan lihat AmazonDataZoneGlueAccess- <region>-< > domainId |
Peran Akses Data tidak memiliki izin yang diperlukan untuk membaca metadata aset yang Anda coba berlangganan. |
Kesalahan ini ditampilkan ketika Amazon DataZone berhasil mengambil AmazonDataZoneGlueDataAccessRoleperan, tetapi peran tersebut tidak memiliki izin yang diperlukan. Untuk memperbaiki masalah, buka AWS IAM konsol di akun tempat aset data Anda ada dan pastikan bahwa peran tersebut telah AmazonDataZoneGlueManageAccessRolePolicymelampirkannya. Untuk informasi selengkapnya, lihat AmazonDataZoneGlueAccess- <region>-< > domainId. |
Aset adalah tautan sumber daya. Amazon DataZone tidak mendukung langganan ke tautan sumber daya. |
Kesalahan ini ditampilkan ketika aset yang Anda coba publikasikan ke Amazon DataZone adalah tautan sumber daya ke tabel AWS Glue. |
Aset tidak dikelola oleh AWS Lake Formation. |
Kesalahan ini menunjukkan bahwa izin AWS Lake Formation tidak diberlakukan pada aset yang ingin Anda publikasikan. Ini bisa terjadi dalam kasus-kasus berikut.
|
Peran Akses Data tidak memiliki izin Lake Formation yang diperlukan untuk memberikan akses ke aset ini. |
Kesalahan ini menunjukkan AmazonDataZoneGlueDataAccessRolebahwa yang Anda gunakan untuk mengaktifkan DefaultDataLakeBlueprintdi akun Anda tidak memiliki izin yang diperlukan bagi Amazon DataZone untuk mengelola izin pada aset yang dipublikasikan. Anda dapat menyelesaikan masalah dengan menambahkan AmazonDataZoneGlueDataAccessRolesebagai administrator AWS Lake Formation atau dengan memberikan izin berikut ke AmazonDataZoneGlueDataAccessRoleaset yang ingin Anda publikasikan.
|
Memecahkan masalah penautan aset DataZone garis keturunan Amazon dengan kumpulan data hulu
Bagian ini berisi petunjuk pemecahan masalah untuk masalah yang mungkin Anda temui dengan garis keturunan Amazon DataZone . Untuk beberapa peristiwa open lineage run terkait Amazon RedShift, Anda mungkin melihat bahwa garis keturunan aset tidak ditautkan ke kumpulan data hulu. AWS Glue Topik ini menjelaskan skenario dan beberapa pendekatan untuk mengurangi masalah. Untuk informasi lebih lanjut tentang garis keturunan, lihat. Garis keturunan data di Amazon DataZone (Pratinjau)
SourceIdentifier pada simpul garis keturunan
sourceIdentifier
Atribut dalam simpul garis keturunan mewakili peristiwa yang terjadi pada kumpulan data. Untuk informasi selengkapnya, lihat Atribut kunci di simpul garis keturunan.
Simpul garis keturunan mewakili semua peristiwa yang terjadi pada kumpulan data atau pekerjaan yang sesuai. Simpul garis keturunan berisi atribut "sourceIdentifier" yang berisi pengenal dataset/pekerjaan yang sesuai. Saat kami mendukung peristiwa garis keturunan terbuka, sourceIdentifier
nilainya secara default diisi sebagai kombinasi “namespace” dan “name” untuk kumpulan data, pekerjaan, dan pekerjaan yang berjalan.
Untuk AWS sumber daya seperti AWS Glue dan Amazon Redshift, tabel sourceIdentifier
ARN dan AWS Glue tabel Redshift ARNs tempat Amazon DataZone akan membuat run-event dan detail lainnya sebagai berikut:
catatan
Di AWS, ARN berisi informasi sepertiaccountId, wilayah, database, dan tabel untuk setiap sumber daya.
OpenLineage event untuk dataset ini berisi database dan nama tabel.
Wilayah ditangkap dalam aspek “properti lingkungan” dari lari. Jika tidak ada, sistem menggunakan wilayah dari kredenal pemanggil.
AccountId diambil dari kredensi penelepon.
SourceIdentifier pada aset di dalam DataZone
AssetCommonDetailForm
memiliki atribut yang disebut "sourceIdentifier" yang mewakili pengidentifikasi dataset yang diwakili oleh aset. Agar node garis keturunan aset ditautkan dengan dataset hulu, atribut harus diisi dengan nilai yang cocok dengan node dataset. sourceIdentifier
Jika aset diimpor oleh sumber data, alur kerja terisi sourceIdentifier
sebagai tabel AWS Glue /tabel ARN Redshift ARN secara otomatis sementara aset lain (termasuk aset kustom) yang dibuat melalui CreateAsset
API seharusnya memiliki nilai tersebut diisi oleh pemanggil.
Bagaimana Amazon DataZone membangun sourceIdentifier dari OpenLineage Acara?
Aset For AWS Glue dan Redshift, dibuat dari sourceIdentifier
Glue dan Redshift. ARNs Inilah cara Amazon DataZone membangunnya:
AWS Glue ARN
Tujuannya adalah untuk membangun sebuah OpenLineage Event di mana node garis keturunan keluaran adalah: sourceIdentifier
arn:aws:glue:us-east-1:123456789012:table/testlfdb/testlftb-1
Untuk menentukan apakah suatu run menggunakan data dari AWS Glue, cari keberadaan kata kunci tertentu di environment-properties
faset tersebut. Secara khusus, jika salah satu bidang yang ditunjuk ini ada, sistem mengasumsikan RunEvent
asalnya. AWS Glue
GLUE_VERSION
GLUE_COMMAND_CRITERIA
GLUE_PYTHON_VERSION
"run": { "runId":"4e3da9e8-6228-4679-b0a2-fa916119fthr", "facets":{ "environment-properties":{ "_producer":"https://github.com/OpenLineage/OpenLineage/tree/1.9.1/integration/spark", "_schemaURL":"https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunFacet", "environment-properties":{ "GLUE_VERSION":"3.0", "GLUE_COMMAND_CRITERIA":"glueetl", "GLUE_PYTHON_VERSION":"3" } } }
Untuk AWS Glue menjalankan, Anda dapat menggunakan nama dari symlinks
segi untuk mendapatkan database dan nama tabel, yang dapat digunakan untuk membangun. ARN
Perlu memastikan namanya adalahdatabaseName.tableName
:
"symlinks": { "_producer":"https://github.com/OpenLineage/OpenLineage/tree/1.9.1/integration/spark", "_schemaURL":"https://openlineage.io/spec/facets/1-0-0/SymlinksDatasetFacet.json#/$defs/SymlinksDatasetFacet", "identifiers":[ { "namespace":"s3://object-path", "name":"testlfdb.testlftb-1", "type":"TABLE" } ] }
Contoh COMPLETE Acara:
{ "eventTime":"2024-07-01T12:00:00.000000Z", "producer":"https://github.com/OpenLineage/OpenLineage/tree/1.9.1/integration/glue", "schemaURL":"https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent", "eventType":"COMPLETE", "run": { "runId":"4e3da9e8-6228-4679-b0a2-fa916119fthr", "facets":{ "environment-properties":{ "_producer":"https://github.com/OpenLineage/OpenLineage/tree/1.9.1/integration/spark", "_schemaURL":"https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunFacet", "environment-properties":{ "GLUE_VERSION":"3.0", "GLUE_COMMAND_CRITERIA":"glueetl", "GLUE_PYTHON_VERSION":"3" } } } }, "job":{ "namespace":"namespace", "name":"job_name", "facets":{ "jobType":{ "_producer":"https://github.com/OpenLineage/OpenLineage/tree/1.9.1/integration/glue", "_schemaURL":"https://openlineage.io/spec/facets/2-0-2/JobTypeJobFacet.json#/$defs/JobTypeJobFacet", "processingType":"BATCH", "integration":"glue", "jobType":"JOB" } } }, "inputs":[ { "namespace":"namespace", "name":"input_name" } ], "outputs":[ { "namespace":"namespace.output", "name":"output_name", "facets":{ "symlinks":{ "_producer":"https://github.com/OpenLineage/OpenLineage/tree/1.9.1/integration/spark", "_schemaURL":"https://openlineage.io/spec/facets/1-0-0/SymlinksDatasetFacet.json#/$defs/SymlinksDatasetFacet", "identifiers":[ { "namespace":"s3://object-path", "name":"testlfdb.testlftb-1", "type":"TABLE" } ] } } } ] }
Berdasarkan OpenLineage
acara yang sourceIdentifier
dikirimkan, node garis keturunan keluaran adalah:
arn:aws:glue:us-east-1:123456789012:table/testlfdb/testlftb-1
Node garis keturunan keluaran akan terhubung ke simpul garis keturunan aset di mana aset tersebut berada: sourceIdentifier
arn:aws:glue:us-east-1:123456789012:table/testlfdb/testlftb-1
Pergeseran Merah Amazon ARN
Tujuannya adalah untuk membangun sebuah OpenLineage Event di mana node garis keturunan keluaran adalah: sourceIdentifier
arn:aws:redshift:us-east-1:123456789012:table/workgroup-20240715/tpcds_data/public/dws_tpcds_7
Sistem menentukan apakah input atau output disimpan dalam Redshift berdasarkan namespace. Secara khusus, jika namespace dimulai dengan redshift://atau berisi string redshift-serverless.amazonaws.com
atau, redshift.amazonaws.com
itu adalah sumber daya Redshift.
"outputs": [ { "namespace":"redshift://workgroup-20240715.123456789012.us-east-1.redshift.amazonaws.com:5439", "name":"tpcds_data.public.dws_tpcds_7" } ]
Perhatikan bahwa namespace harus dalam format berikut:
provider://{cluster_identifier}.{region_name}:{port}
Untuk redshift-serverless
:
"outputs": [ { "namespace":"redshift://workgroup-20240715.123456789012.us-east-1.redshift-serverless.amazonaws.com:5439", "name":"tpcds_data.public.dws_tpcds_7" } ]
Hasil dalam hal berikut sourceIdentifier
arn:aws:redshift-serverless:us-east-1:123456789012:table/workgroup-20240715/tpcds_data/public/dws_tpcds_7
Berdasarkan OpenLineage peristiwa yang dikirimkan, sourceIdentifier
simpul garis keturunan yang akan dipetakan ke hilir (yaitu, output dari acara) adalah:
arn:aws:redshift-serverless:us-e:us-east-1:123456789012:table/workgroup-20240715/tpcds_data/public/dws_tpcds_7
Ini adalah pemetaan yang membantu Anda memvisualisasikan garis keturunan aset dalam katalog.
Pendekatan alternatif
Ketika tidak ada kondisi di atas yang terpenuhi, sistem menggunakan namespace/name untuk membangun: sourceIdentifier
"inputs": [ { "namespace":"arn:aws:redshift:us-east-1:123456789012:table", "name":"workgroup-20240715/tpcds_data/public/dws_tpcds_7" } ], "outputs": [ { "namespace":"arn:aws:glue:us-east-1:123456789012:table", "name":"testlfdb/testlftb-1" } ]
Memecahkan masalah kekurangan hulu untuk node garis keturunan aset
Jika Anda tidak melihat hulu node garis keturunan aset, Anda dapat melakukan hal berikut untuk memecahkan masalah mengapa node tersebut tidak ditautkan dengan kumpulan data:
Memohon
GetAsset
sambil memberikandomainId
danassetId
:aws datazone get-asset --domain-identifier <domain-id> --identifier <asset-id>
Responsnya muncul sebagai berikut:
{ ..... "formsOutput": [ ..... { "content": "{\"sourceIdentifier\":\"arn:aws:glue:eu-west-1:123456789012:table/testlfdb/testlftb-1\"}", "formName": "AssetCommonDetailsForm", "typeName": "amazon.datazone.AssetCommonDetailsFormType", "typeRevision": "6" }, ..... ], "id": "<asset-id>", .... }
Memanggil
GetLineageNode
untuk mendapatkan nodesourceIdentifier
garis keturunan dataset. Karena tidak ada cara untuk mendapatkan simpul garis keturunan untuk node kumpulan data yang sesuai secara langsung, Anda dapat memulai dengan menjalankanGetLineageNode
pekerjaan:aws datazone get-lineage-node --domain-identifier <domain-id> --identifier <job_namespace>.<job_name>/<run_id> if you are using the getting started scripts, job name and run ID are printed in the console and namespace is "default". Otherwise you can get these values from run event content.
Respons sampel terlihat seperti berikut:
{ ..... "downstreamNodes": [ { "eventTimestamp": "2024-07-24T18:08:55+08:00", "id": "afymge5k4v0euf" } ], "formsOutput": [ <some forms corresponding to run and job> ], "id": "<system generated node-id for run>", "sourceIdentifier": "default.redshift.create/2f41298b-1ee7-3302-a14b-09addffa7580", "typeName": "amazon.datazone.JobRunLineageNodeType", .... "upstreamNodes": [ { "eventTimestamp": "2024-07-24T18:08:55+08:00", "id": "6wf2z27c8hghev" }, { "eventTimestamp": "2024-07-24T18:08:55+08:00", "id": "4tjbcsnre6banb" } ] }
Panggil
GetLineageNode
lagi dengan meneruskan pengidentifikasi node hilir/hulu (yang menurut Anda harus ditautkan ke node aset) karena ini sesuai dengan kumpulan data:Contoh perintah menggunakan contoh respon di atas:
aws datazone get-lineage-node --domain-identifier <domain-id> --identifier afymge5k4v0euf
Ini mengembalikan detail simpul garis keturunan yang sesuai dengan kumpulan data: afymge5k4v0euf
{ ..... "domainId": "dzd_cklzc5s2jcr7on", "downstreamNodes": [], "eventTimestamp": "2024-07-24T18:08:55+08:00", "formsOutput": [ ..... ], "id": "afymge5k4v0euf", "sourceIdentifier": "arn:aws:redshift:us-east-1:123456789012:table/workgroup-20240715/tpcds_data/public/dws_tpcds_7", "typeName": "amazon.datazone.DatasetLineageNodeType", "typeRevision": "1", .... "upstreamNodes": [ ... ] }
Bandingkan
sourceIdentifier
node dataset ini dan respons dariGetAsset
. Jika tidak ditautkan, ini tidak akan cocok, dan karenanya tidak akan terlihat di UI garis keturunan.
Skenario dan mitigasi yang tidak cocok
Berikut ini adalah skenario yang umum diketahui di mana ini tidak akan cocok dan kemungkinan mitigasi:
Akar penyebab: Tabel hadir di akun yang berbeda dari akun DataZone domain Amazon.
Mitigasi: Anda dapat menjalankan PostLineageEvent
operasi dari akun terkait. Karena accountId
untuk membangun ARN diambil dari kredenal pemanggil, Anda dapat mengambil peran dari akun yang berisi tabel saat menjalankan skrip atau pemanggilan memulai. PostLineageEvent
Melakukannya akan membantu dalam membangun ARNs dengan benar dan menghubungkan dengan node aset.
Akar penyebab: ARN Untuk Redshift table/views contains Redshift/Redshift -serverless berdasarkan namespace dan atribut nama dari informasi kumpulan data yang sesuai dalam acara run. OpenLineage
Mitigasi: Karena tidak ada cara deterministik untuk mengetahui apakah nama yang diberikan milik cluster atau workgroup, kami menggunakan heuristik berikut:
Jika “nama” yang sesuai dengan kumpulan data berisi "
redshift-serverless.amazonaws.com
“, kami menggunakan redshift-serverless sebagai bagian dariARN, jika tidak default ke “pergeseran merah”.Di atas berarti alias pada nama workgroup tidak akan berfungsi.
Akar penyebab: Kumpulan data hulu tidak ditautkan dengan benar untuk aset khusus.
Mitigasi<name>: Pastikan untuk mengisi aset dengan memanggilCreateAsset
/CreateAssetRevision
yang cocok dengan node dataset (sourceIdentifier
yang akan menjadi<namespace>/untuk node khusus). sourceIdentifier