paint-brush
AI indiki dostuňyzy çaklamazdan ozal muny etmelitarapyndan@andrei9735
458 oka
458 oka

AI indiki dostuňyzy çaklamazdan ozal muny etmeli

tarapyndan Andrei7m2025/02/11
Read on Terminal Reader

Örän uzyn; Okamak

Bu ýazgyda Twitch maglumat bazasy bilen baglanyşyk çaklamasynyň üstünde işlemegi dowam etdireris.
featured image - AI indiki dostuňyzy çaklamazdan ozal muny etmeli
Andrei HackerNoon profile picture

Bu ýazgyda Twitch maglumatlar toplumy bilen baglanyşyk çaklamasynyň üstünde işlemegi dowam etdireris: Neptun DB toparyndan grafiki maglumatlary AWS tarapyndan üpjün edilen neptun-eksport kömekçi enjamyny ulanyp S3 bedrä eksport ederis. Maglumat eksport meselesini döredenimizde 'neptune_ml' profilini saýlarys we kömekçi enjam, soňundan turbada ulanjak 'Training-data-config.json' faýlyny döreder. Eksport edilen maglumatlar, baglanyşygy çaklamak üçin zerur indiki ädim bolan aýratynlyklary kodlamaga we maglumatlary gaýtadan işlemäge taýýar bolar.


1-nji bölümi şu ýerde okaň.

NEPTUNE DB-de grafiki maglumatlar

Neptun DB-de bar bolan grafiki maglumatlardan, Neptun Bulk Loader API (bu gollanmanyň 1-nji bölüminde görkezilişi ýaly) ulanyp, diklikleriň we gyralaryň sanawlaryny ýüklänimizden başlaýarys.


Diklikler ulanyjylary aňladýar. Verthli depelerde birmeňzeş häsiýetler bar we bir sözbaşy şuňa meňzeýär:

 {<T.id: 1>: '153', <T.label: 4>: 'user', 'days': 1629, 'mature': True, 'views': 3615, 'partner': False}


Edhli gyralaryň birmeňzeş belligi bar ('yzy'), her gyrasy 2 ulanyjyny birleşdirýär. Bir gyrasy şeýle görünýär:

 {<T.id: 1>: '0', <T.label: 4>: 'follows', <Direction.IN: 'IN'>: {<T.id: 1>: '255', <T.label: 4>: 'user'}, <Direction.OUT: 'OUT'>: {<T.id: 1>: '6194', <T.label: 4>: 'user'}}


Biziň maksadymyz, maglumat turbageçirijimiziň indiki böleginde ulanylmagy üçin maglumatlary eksport etmek: deslapky işlemek we aýratynlyklary kodlamak.

EC2-de NEPTUNE-EKSPORT ÜPJÜNÇILIGINI AÇMAK

Maglumatlar bazasyndan maglumatlary eksport etmek üçin AWS tarapyndan üpjün edilen neptun-eksport peýdalylygyny ulanarys. Kärhananyň DB-e girmegine rugsat bermek üçin, ony Neptun DB toparynyň ýerleşýän VPC içindäki EC2 mysalynda işlederis. Kärhana maglumatlary DB-den alar, ýerli ammarda saklar (EBS göwrümi), soň bolsa eksport edilen maglumatlary S3-e ýüklär.


AWS eksport prosesiniň HTTP haýyşy bilen başlamagyna rugsat bermek üçin VPC-iňizde şahsy API ýerleşdirýän “Cloudformation” şablony bilen üpjün etse-de, bu gezek ünsi jemlemeris. Biziň maksadymyz maglumat turbageçirijisiniň nähili işleýändigini görkezmek (we API gurmak däl), diňe neptun-eksport hyzmaty bilen täsirleşmek üçin EC2 mysal konsolyny ulanarys. Theeri gelende aýtsak, şol konsol buýruklary AWS Systems Manager Run Command we Step Functions bilen awtomatlaşdyrylyp bilner.


Neptun-eksport bilen meşgullanjak EC2 mysalymyzy döredeliň. AMI üçin Ubuntu 24.04 LTS saýlaýarys. Neptun toparyna EC2 mysalyndan baryp bolýandygyna göz ýetirmeli, şonuň üçin mysallary Neptun toparynyň ýerleşýän şol bir VPC-de dörederis we mysal bilen klasteriň arasynda tor hereketine rugsat bermek üçin howpsuzlyk toparlaryny düzeris. Şeýle hem, eksport edilen maglumatlary saklamak üçin ýeterlik ululykdaky EBS göwrümini birikdirmeli. Işleýän maglumat bazamyz üçin 8 Gb göwrüm ýeterlikdir.


Mysal başlanda, aşakdaky syýasatda görkezilişi ýaly, S3 çelekine barmaga we käbir RDS hereketlerine ýazmaga mümkinçilik berýän IAM roluny döretmeli. Syýasatyň birinji beýany hökmany bolsa-da, ikinjisi diňe klonlaşdyrylan topardan maglumat eksport edeniňizde zerur. Klonlaşdyrylan toparlardan maglumatlary eksport etmek bu ýazgyda soňrak ara alnyp maslahatlaşylar.

 { "Version": "2012-10-17", "Statement": [ { "Sid": "RequiredPart", "Effect": "Allow", "Action": [ "rds:ListTagsForResource", "rds:DescribeDBInstances", "rds:DescribeDBClusters" ], "Resource": "*" }, { "Sid": "OptionalPartOnlyRequiredForExportingFromClonedCluster", "Effect": "Allow", "Action": [ "rds:AddTagsToResource", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:ListTagsForResource", "rds:DescribeDBClusterParameters", "rds:DescribeDBParameters", "rds:ModifyDBParameterGroup", "rds:ModifyDBClusterParameterGroup", "rds:RestoreDBClusterToPointInTime", "rds:DeleteDBInstance", "rds:DeleteDBClusterParameterGroup", "rds:DeleteDBParameterGroup", "rds:DeleteDBCluster", "rds:CreateDBInstance", "rds:CreateDBClusterParameterGroup", "rds:CreateDBParameterGroup" ], "Resource": "*" } ] }

'Resurs' meýdançasyny redaktirläp, diňe maksatly topara (ähli toparlaryň ýerine) girip bilersiňiz.


Şeýle hem, rol EC2-ni ýerine ýetirmäge mümkinçilik berýän ynam syýasaty bolmalydyr:

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

EC2 mysaly we rol taýýar bolansoň, roly görelde alarys.


Ondan soň, mysal üçin neptun-eksport kömekçi programmasyny gurmaly. Munuň üçin mysallara gireris we JDK 8 gurmak we kömekçi enjamy göçürip almak üçin bu buýruklary ulanarys:

 sudo apt update -y sudo apt install -y openjdk-8-jdk curl -O https://s3.amazonaws.com/aws-neptune-customer-samples/neptune-export/bin/neptune-export.jar

Indi EC2 mysalyny, niýetlenen S3 çelgesini taýýarlap, IAM çelekine mysal üçin ýazmaga mümkinçilik berýän IAM roluny goşanymyzdan soň, maglumatlary eksport edip bileris. JSON obýekti hökmünde zerur parametrleri üpjün edip, prosesi başlamak üçin bu buýrugy ulanarys:

 java -jar /home/ubuntu/neptune-export.jar nesvc \ --root-path /home/ubuntu/neptune-export \ --json '{ "command": "export-pg", "outputS3Path" : "s3://YOUR_TARGET_S3_BUCKET/neptune-export", "params": { "endpoint" : "YOUR_CLUSTER_ENDPOINT", "profile": "neptune_ml" } }'

Bu ýerde diňe zerur parametrleri ulanýardyk, ýöne sazlamany aňsatlyk bilen uzaldyp bilersiňiz. Grafanyň haýsy bölegini 'süzgüç' parametrini ulanyp eksport edip bilersiňiz: düwünleri, gyralary we olaryň häsiýetlerini saýlap bilersiňiz.


Göni maglumatlar bazasyndan maglumat eksport edýän bolsaňyz, neptu-eksport kömekçi bazasynyň gysgaça suratyny almak , şol suratdan täze Neptun toparyny döretmek, okalan nusgalary ýerleşdirmek we maglumatlary eksport etmek üçin ulanyp bilersiňiz. Şeýle etmek bilen, gönüden-göni maglumatlar bazasynyň eksport edilýän maglumatlardan goşmaça ýüküň täsir etmejekdigine göz ýetirip bilersiňiz.

Parametrleriň doly sanawyny şu ýerden tapyp bilersiňiz ( https://docs.aws.amazon.com/neptune/latest/userguide/export-parameters.html ).

Eksport edilen maglumatlara we indiki ädimlere syn etmek

Eksport prosesi tamamlanandan soň, neptun-eksport dikligiň we gyralaryň sanyny goşmak bilen käbir statistikalary çap edýär:

 Source: Nodes: 7126 Edges: 70648 Export: Nodes: 7126 Edges: 70648 Properties: 28504 Details: Nodes: user: 7126 |_ days {propertyCount=7126, minCardinality=1, maxCardinality=1, recordCount=7126, dataTypeCounts=[Integer:7126]} |_ mature {propertyCount=7126, minCardinality=1, maxCardinality=1, recordCount=7126, dataTypeCounts=[Boolean:7126]} |_ views {propertyCount=7126, minCardinality=1, maxCardinality=1, recordCount=7126, dataTypeCounts=[Integer:7126]} |_ partner {propertyCount=7126, minCardinality=1, maxCardinality=1, recordCount=7126, dataTypeCounts=[Boolean:7126]} Edges: (user)-follows-(user): 70648

Soň bolsa eksport edilen maglumatlary S3-e ýükleýär.


Maksatly S3 çelekinde döredilen faýllara seredeliň:

















'Düwünler' we 'gyralar' kataloglarynda maglumatlar ýüklänimizde 1-nji bölümde ulanşymyza meňzeş düwünleriň we gyralaryň sanawy bolan CSV faýllary bar. Uly grafikler üçin birnäçe faýl bar, emma maglumatlar bazamyz kiçi we her katalogda diňe bir faýl bar. Şeýle hem, okuwymyzyň indiki ädiminde redaktirläp, ulanjak okuw-maglumat-konfigurasiýa.json faýly bar.


Bir gezek eksport edýän bolsaňyz, indi EC2 mysalyny we EBS göwrümini pozmak ygtybarly, sebäbi indiki ädimde diňe maksatly S3 çelekindäki faýllar ulanylar. Otherwiseogsam, boş wagt üçin zarýad almazlyk üçin EC2 mysalyny duruzyp bilersiňiz (pozmasaňyz, EBS ammary üçin töleg alynýar).


Bu pursatda, S3-de grafiki maglumatlar bar, indiki ädimde ulanyp boljak formatda, indiki ýazgymyzda ara alnyp maslahatlaşyljak aýratynlyklary kodlamagy we maglumatlary gaýtadan işlemäge taýýar .