💻
Cheet Sheets
  • 🦁Başlarken
  • 🟧DevOps Pre-Requisite
    • ❤️Why Linux? | Linux Basics #1
    • 💛Vi Editor | Linux Basics #2
    • 💙Basics Commands | Linux Basics #3
    • 🧡Package Managers | Linux Basics #4
    • 💚Services | Linux Basics #5
    • 💛Networking Basics
    • 🤎DNS Basics
    • 🩶Applications Basics
    • 🟨Java introduction
    • 🟩NodeJS Introduction
    • 🟦Python Introduction
    • 🟪GIT Introduction
    • 🟧Apache Web Server Introduction
    • ⬛Apache Tomcat
    • 🟫Python Flask
    • 🟥Node.js Express App
    • 🟨Databases
    • 🟩MySQL
    • 🟪MongoDB
    • 🟨SSL & TLS
    • 🟦YAML & JSON - JSON Path
    • ⬛Labs Resources
  • 🍎Kubernetes
    • 🍏Kubernetes: Nedir ?
    • 🍒Bileşenler
    • 🍵Kubectl ve Versiyon
    • ❤️Pod
    • 🏷️Label ve Selector
    • 🔎Annotation
    • 📲Namespaces
    • 📦Deployments
    • 🔁ReplicaSet
    • 🔙Rollout & Rollback
    • 🌐Networking - 1
    • 🌏Service
    • 🛠️Liveness Probe & Readiness Probe
    • 🥐Resource Limits
    • 💰Environment Variables
    • 📃Ephemeral Volumes
    • 🔑Secrets
    • 🌂ConfigMap
    • 🖥️Node Affinity
    • 🔌Pod Affinity
    • ✍️Taint and Toleration
    • 🔦DaemonSet
    • 🧀PV/PVC
    • 🌜Storage Class
    • 🗿StatefulSet
    • 🕹️Job & Cronjob
    • 🔐Authentication
    • 📏Role-based access control (RBAC)
    • 🈷️Service Account
    • 📈Ingress
    • 📂ImagePullPolicy & ImageSecret
    • 📖Static Pods
    • 🌐Network Policy
    • 🫐Helm Nedir?
    • 📽️Prometheus Stack - Monitoring
    • 💼EFK Stack - Monitoring
    • 🥳CRD & Operator
  • 🧑‍⚕️GIT & GITHUB
    • 👉Girizgah
    • 🌴Branch
    • 🤝Merge
    • 🤔Conflict - Rebase
    • 🇸🇴Alias
    • 🛑Gitignore
    • 🥢Diff
    • ◀️Checkout
    • 🔦Stash
    • 👉Other
  • ☁️AWS
    • 🪣S3
    • 🚙EC2
    • ⚖️ELB
    • 🤝Auto Scaling
    • 🗄️EFS
    • 🔐VPC
    • 🎆CloudFront
    • ❤️Route53
    • 🦈RDS
    • 🏢ElastiCache
    • 🔭CloudWatch
    • 👀CloudTrail
    • 📃CloudFormation
    • 🔕SNS
    • 📬SQS
    • 🎇SWF
    • 📧SES
    • 📦Kinesis
    • 📐AWSConfig
    • 👩‍🏭OpsWork
    • 🚀Lambda - Api Gateway
    • 📌ECS - EKS
    • 🔑KMS
    • 📂Directory Service
    • 🏐Snowball
    • 💾Storage Gateway
    • 💽Volume Gateway
    • 📼Tape Gateway
    • 🏠Organizations
    • 🔙Backup-Transfer-CloudShell
    • 🆔IAM
    • 📀DataSync
    • 🗃️FSx
    • 🎒Aurora Serverless
    • 🌐Global Accelerator
    • 💪HPC
    • 🎰Outposts
    • 🗼Others
  • 👨‍🔬Ansible
    • 👉Girizhah
    • 📔YAML
    • ⚙️Komponentler
    • 🎒Inventory
    • 🏑ad-hoc
    • ▶️Playbook
  • 👨‍⚕️PROMETHEUS
    • 📈Terminoloji
    • 🦯Ubuntu 20.04 Prometheus Kurulum
    • 🗒️prometheus.yml dosyasına ilk bakış:
    • 🧭promQL up query
    • 📇Exporters
    • 🔦promQL Data Types
    • 🦯Selectors & Matchers
    • 🔢Binary Operators
    • 💀ignoring and on
    • ✍️Aggregation Operators
    • 🧠Functions
    • 🖊️Alıştırma
    • 💻Client Libraries
    • 🐍Examining the data of our Python application
    • 🐐Examining the data of our GO application
    • ⏺️Recording Rules
    • 💡rate functions
    • ⏰Alerting
    • ⌚Alert Routing
    • ⏰Slack integration with Prometheus
    • 🤯PagerDuty integration with Prometheus
    • ◼️BlackBox exporter
    • 📍Push Gateway
    • 🪒Service Discovery
    • 🧊kube cadvisor with external prometheus
    • 👉aws with prometheus
    • ☁️CloudWatch Exporter
    • 👨‍🚒mysql exporter
    • 🛃Custom exporter with Python
    • ⚙️Prometheus with HTTP API
    • 🤖Prometheus Federation For Kubernetes
    • 📺Grafana
    • ⁉️Prometheus: Ne zaman kullanılmalı? Ne zaman kullanılmamalıdır?
  • 🍪Sheets
    • 🛳️Docker Sheets
    • 🐐Kube Sheets
  • 🔢12 Factor APP
    • 🏗️Introduction
    • 1️⃣Codebase
    • 2️⃣Dependencies
    • 3️⃣Concurrency
    • 4️⃣Processes
    • 5️⃣Backing Services
    • 6️⃣Config
    • 7️⃣Build, release, run
    • 8️⃣Port binding
    • 9️⃣Disposability
    • 🔟Dev/prod parity
    • 🕚Logs
    • 🕛Admin processes
  • ☁️Azure 104
    • 👨‍👨‍👧‍👧Azure Active Directory ( Entra ID )
    • 💰Subscriptions
    • 🌎Virtual Network (VNET)
    • 💻Virtual Machines
    • 🧑‍🌾Load Balancing
    • 🥍Network Advanced
    • 🪡Automating Deployment and Configuration
    • 💂Securing Storage
    • 📓Administering Azure Blobs and Azure Files
    • 🔧Managing Storage
    • 🎁App Service
    • 🛳️Azure Container
    • 🥇Backup And Recovery
    • 🪐Network Watcher
    • ⏰Resource Monitoring And Alerts
  • ⛅AZURE 305
    • 🆔identity and access management
    • 💼Desing Azure AD (Entra ID)
    • 👨‍💼Desing for Azure B2B
    • 🛃Desing for Azure B2C
    • 💳Design for MFA and Conditional Access
    • ⛑️Design for Identity Protection
    • 🚶Access Reviews
    • 🚦Managed identity Demostration
    • 🔐Key Vault Demostration
    • 👑Governance hierarchy
    • 💠Design for Management Groups
    • 🔑Desing for Subscriptions
    • 🍇Desing for resource groups
    • 📟Design for resource tags
    • 🚷Azure Policy & RBAC
    • 🫐Desing For Blueprints
    • 🪡Desing for Virtual Networks
    • 🛫Design for on-premises connectivity to Azure
    • 🔽Design for network connectivity
    • 📦Design for application delivery
    • 🥞Design for network security and application protection
    • 📕Choose a compute solution
    • 🌊Design for virtual machines
    • 🔋Azure Batch Demostration
    • 🛰️Design for Azure App Service
    • ⛲Design for Azure Container Instances
    • 🎢Design for Azure Kubernetes Service
    • 📠Azure Functions Demostration
    • 💪Azure Logic Apps Demostration
    • 🧑‍💼Design for data storage
    • 🎞️Design for Azure storage accounts
    • 🌟Choose the storage replication
    • 📹Azure blob storage - Lifecycle & immutable demo
    • 🥌Azure Files Demostration
    • 🕸️Design Azure disks
    • 🦼Design for storage security
    • 🔮Azure Table Storage And Cosmos DB Demostration
    • 🟧Azure SQL Solutions
    • 🎡Azure SQL Database - Purchasing models
    • 🕯️Database availability
    • 📜Data security strategy
    • 🧮Azure SQL Edge
    • 🚲Azure Data Factory
    • 🔅Azure Data Lake Storage
    • 🧘‍♂️Azure Databricks
    • 🎒Azure Synapse Analytics
    • 🅰️Azure Stream Analytics
    • 📼Data flow strategy
    • 🍥Cloud Adoption Framework
    • ☣️Azure Migration Framework
    • 🦿Assessing workloads
    • 🪡Migration tools
    • 🤖Azure Database migration
    • 👥Storage migration
    • 👜Azure Backup
    • ⏲️Azure Blob Backup and Recovery
    • 💈Azure files backup and recovery
    • 🎞️Azure VM backup and recovery
    • 🧺Azure SQL backup and recovery
    • ⏰Azure Site Recovery
    • 📩Differentiate event and message
    • ✈️Azure messaging solutions
    • 🚜Event Hub
    • 🥍Application optimization solution
    • 🎁Application lifecycle
    • 📺Azure Monitor
    • 🅱️Log Analytics
    • 👥Azure workbooks and Insights
    • 🚌Azure Data Explorer
  • Github Actions
    • Github Actions Nedir?
    • Workflow & Schedule Triggers
    • Single and Multiple Events
    • Manuel Events
    • Webhook Events
    • Conditional Keywords For Steps
    • Expressions - 1
    • Expressions - 2
    • Runners
    • Workflow Commands
    • Workflow Context
    • Dependent Jobs
    • Encrypted Secrets
    • Configuration Variables
    • Default & Custom Env Varb
    • Set Env Varb with Workflow Commands
    • Github Token Secret
    • Add Script to workflow
    • Push Package #1
    • Push Package #2 Docker
    • Service Containers
    • Routing workflow to runner
    • CodeQL Step
    • Caching Package and Dependency Files
    • Remove workflow Artifact
    • Workflow Status Badge
    • Env Protection
    • Job Matrix Configuration
    • Disable & Delete Workflows
    • Actions type for Action
    • Inputs and Outputs for actions
    • Action Versions
    • Files and Directories for Actions
    • Exit Codes
    • Reusable Workflow & Reuse Templates for Actions and Workflows
    • Configure Self Hosted Runners for Enterprise
  • Loki
    • What is Loki?
    • Architecture of Loki
    • Install Loki For Ubuntu
    • Install Promtail For Ubuntu
    • Querying Logs
    • Loki in Kubernetes
    • Deploying Loki in Kubernetes
    • Connecting to Grafana
    • Viewing Kubernetes logs
    • Promtail Customize & Pipeline
  • Ansible
    • Ansible Introduction
    • Introduction to Ansible Configuration Files
    • Ansible Inventory
    • Inventory Formats
    • Ansible Variables
    • Variable Types
    • Registering Variables and Variable Precedence
    • Variable Scoping
    • Magic Variables
    • Ansible Facts
    • Ansible Playbooks
    • Verifying Playbooks
    • Ansible lint
    • Ansible Conditionals
    • Ansible Conditionals based on facts, variables, re-use
    • Ansible Loops
    • Ansible Modules
    • Introduction to Ansible Plugins
    • Modules and Plugins Index
    • Introduction to Handlers
    • Ansible Roles
    • Ansible Collections
    • Introduction to Templating
    • Jinja2 Templates for Dynamic Configs
  • 🅰️Ansible Advanced
    • Playbook run options
Powered by GitBook
On this page
  • Azure Table Storage:
  • Azure Table Storage Demo:
  • Cosmos DB:

Was this helpful?

  1. AZURE 305

Azure Table Storage And Cosmos DB Demostration

PreviousDesign for storage securityNextAzure SQL Solutions

Last updated 1 year ago

Was this helpful?

Azure Table Storage:

Azure Table Storage, Microsoft Azure'un sunduğu bir NoSQL key/value veri deposu hizmetidir. Büyük miktarda yapılandırılmış ve ilişkisel olmayan verileri depolamak ve yönetmek için ideal bir çözümdür.

Özellikler,

  • Şemasız Tasarım: Azure Table Storage veri yapısını esnek bir şekilde oluşturmaya imkan verir. Uygulamanın gereksinimlerine göre sütun sayısı ve veri türleri belirlenebilir.

  • Anahtar/Değer Depolama: Veriler anahtar-değer çiftleri şeklinde depolanır. Her satır benzersiz bir partition key ve row key ile tanımlanır.

  • Partition Key ve Row Key: Bu iki anahtar sayesinde veriler gruplara ayrılarak erişim ve sorgulama performansı artırılır.

    • Partition Key: Azure Table Storage verileri bölümlere (partition) ayırır. Partition Key, hangi satırın hangi bölüme ait olacağını belirler.

    • Row Key: Bir Partition Key içerisindeki bir satırı benzersiz şekilde tanımlamak için kullanılır.

  • Yüksek Ölçeklenebilirlik: Petabayt ölçeğinde veri depolama ve otomatik ölçeklenebilme özelliği sayesinde büyük veri yüklerine cevap verebilir.

  • REST API ve Client Kitaplıkları: .NET, Java, Python gibi pek çok dil için hazır kütüphaneler ve REST API erişimi sağlar.

Bir ürün kataloğunu düşünelim:

  • Partition Key: Ürün kategorisini temsil edebilir (Elektronik, Giyim, Ev Eşyaları, vb.)

  • Row Key: Ürün KIMLIĞİ olabilir (ürün1234, gömlek789, vb.)

Bu yapıda,

  • "Elektronik" kategorisi ile ilgili sorgu yaptığınızda, yalnızca Elektronik bölümüne bakarak hız kazanırsınız.

  • Elektronik bölümü içinde "ürün1234" satırını almak istiyorsanız Row Key ile direk o satıra erişebilirsiniz.

Örnek Kullanım Alanları;

  • Azure Table Storage, müşteri profilleri, kullanıcı ayarları ve benzeri kişiselleştirilmiş verileri depolamada kullanılabilir.

  • Bir e-ticaret sitesinin ürün verileri, fiyatları, stok bilgileri vs. Table Storage'da tutulabilir.

  • Uygulama ayarları, web sitelerinin konfigürasyon dosyaları gibi değiştirilebilir veriler Table Storage'da saklanabilir.

  • Endüstriyel IoT senaryolarında sensör verileri veya akıllı cihaz verileri Table Storage'da toplanabilir.

  • Uygulama performansı, kullanıcı davranışı analizleri için günlük kayıtları Table Storage'da depolanabilir.

  • Oyuncu profilleri, skor tabloları, harita verileri gibi oyun verileri Table Storage ile yönetilebilir.

  • Mobil uygulamaların arka uç hizmetleri, kullanıcı verileri Table Storage kullanılarak yönetilebilir.

Table Storage, ilişkisel veritabanları gibi karmaşık sorguları desteklemez. Birden fazla tablonun birleştirilmesini, şartlı ifadeleri içeren sorguları veya gruplama gibi işlemleri desteklemez. Ancak basit sorguları çok hızlı bir şekilde işleyebilir.

Azure Table Storage Demo:

Verdiğimiz futbolcu bilgilerini bir tablo üzerinde, key-value eşlenikleri şeklinde saklayan python uygulaması.

1 - Storage Account Oluşturma: Aşağıdaki komutu kullanarak yeni bir storage account oluşturalım.

az storage account create --name storageaccount35623 --resource-group rg-demo-tables-and-CosmosDB-001 --location eastus --sku Standard_LRS --kind StorageV2

2 - Table oluşturma: Aşağıdaki komutu kullanarak, storage account içerisinde, "footballPlayers" adında tablo oluşturuyoruz.

az storage table create --name footballPlayers --account-name storageaccount35623

3 - Connection String Bilgisi: Table storage bağlantısı kurmak için, connection string ihtiyacımız bulunmaktadır. Bunun için, aşağıdaki komutu çalıştırıp, storage account connection string bilgisini almalıyız.

az storage account show-connection-string --name storageaccount35623 --resource-group rg-demo-tables-and-CosmosDB-001

4 - Kodumuzu test edelim: Kodumuzu çalıştırıp, bizden istediği bilgileri girelim. Öncelikle, kodumuzun çalışması için gerekli olan extensionları yükleyelim.

pip install azure-data-tables

azure-data-tables extension'u pip ile sistemimize yükledik. Şimdi kodumuzu çalıştırıp, testimizi yapabiliriz. Öncelikle, çalıştırdığım kodu aşağıda paylaşıyorum:

from azure.data.tables import TableServiceClient
from azure.core.exceptions import ResourceExistsError
import os

# Azure Table Storage bağlantı dizesini buraya girin
connection_string = "your_connection_string_here"

# Table service client'ı başlatma
table_service_client = TableServiceClient.from_connection_string(conn_str=connection_string)

# Tabloya erişim (tablo yoksa oluşturulur)
table_name = "footballPlayers"
try:
    table_client = table_service_client.create_table_if_not_exists(table_name=table_name)
except ResourceExistsError:
    table_client = table_service_client.get_table_client(table_name=table_name)

# Kullanıcıdan futbolcu bilgilerini alma
player_name = input("Futbolcu adını girin: ")
player_age = input("Futbolcunun yaşını girin: ")
player_country = input("Futbolcunun ülkesini girin: ")

# Bilgileri Azure Table Storage'a ekleyen entity
entity = {
    "PartitionKey": player_country,
    "RowKey": player_name,
    "Age": player_age,
}

try:
    table_client.create_entity(entity=entity)
    print(f"{player_name} başarıyla eklendi.")
except Exception as e:
    print(f"Bir hata oluştu: {e}")

Kodumuzu çalıştırdığımzda, bizden 3 adet bilgi istedi:

  • player_name

  • player_age

  • player_country

Bu bilgileri girdiğimizde, eklendiğine dair karşımıza bir mesaj çıktı.

Bilgiler eklendiğine göre, storage account 'a gidip bu bilgilerin gerçekten düzgün bir şekilde eklendiğini teyit edelim.

Göreceğiniz üzere, bilgiler eklenmiş. Demo başarılı bir şekilde çalıştı. Farklı bir test yapıp, tablomuza yeni bir anahtar girelim.

Eklediğimiz futbolcu bilgisinin yanına, pozisyon bilgisininde girilmesini istedik ve kodumuzu yukarıdaki şekilde güncelledik. Kodumuzu çalıştırdığımızda, table storage da bu bilgiyi teyit edelim.

Yeni anahtarımıza başarılı bir şekilde, değer girdik ve eklenip, eklenmediğini teyit ettik. Dolayısıyla table storage demosunu başarılı bir şekilde gerçekleştirdik. Ayrıca istenirse, bu bilgilere kod yardımıyla, SDK, API 'ler kullanarak programatik bir şekilde erişilebilir ve entity 'ler dinamik bir şekilde yönetilebilir.


Cosmos DB:

Cosmos DB, Microsoft tarafından sunulan ve küresel ölçekte dağıtılmış çok modelli bir veritabanı hizmetidir. Verileri farklı veri biçimleriyle (belge, grafik, tablo vs.) depolayabilir ve bunlara anlık olarak erişebilirsiniz. Aynı zamanda yüksek kullanılabilirlik ve düşük gecikme süreleri sunar.

Azure Table Storage, basit NoSQL tablo depolama hizmetidir. Veriler satır ve sütun şeklinde depolanır. Ancak sorgu yetenekleri ve özellik seti sınırlıdır. Cosmos DB ise çok daha gelişmiş bir hizmettir. Verileri farklı biçimlerde saklayabilir ve zengin sorgu imkanı sunar.

Başlıca Kullanılabilir API'ler,

  1. Azure Cosmos DB for MongoDB

  2. Azure Cosmos DB for PostgreSQL

  3. Azure Cosmos DB for NoSQL

  4. Apache Cassandra:

Azure Cosmos DB'de "Container", verilerin saklandığı birimlerdir. Genellikle bir veritabanıdaki tablolara benzetilebilir. Bir Azure Cosmos DB hesabında birden çok veritabanı olabilir ve her veritabanı içinde birden çok container bulunabilir.

Özetle, Her bir veritabanı, içerisinde birden fazla container barındırabilir. Konteynerlar, verilerin saklandığı temel birimlerdir ve SQL'deki tablolara, MongoDB'deki koleksiyonlara veya Gremlin'deki grafiklere benzetilebilir. Yani, verilerinizi saklamak ve sorgulamak için kullandığınız yapılar konteynerlardır. Örneğin, bir e-ticaret uygulamasında "ürünler" adında bir container olabilir, bu container içinde her bir ürünün bilgilerini içeren bilgiler/belgeler bulunur.

Kullanım Örneği:

⛅
🔮
https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/quickstart-portal
Azure Table storage documentationMicrosoftLearn
Logo
How to Set Up Azure CosmosDB – Database Guide for BeginnersfreeCodeCamp.org
Logo
Azure Cosmos DB and its common industry use casesNeal Analytics
Azure Cosmos DB – Unified AI DatabaseMicrosoftLearn
Logo
Logo