در دنیای امروز که دادهها در منابع متنوعی مانند دیتابیسهای رابطهای (SQL ,Oracle ,PostgreSQL)، فایلهای CSV ،HDFS و سرویسهای ابری ذخیره میشوند، نیاز به یک راهکار برای Query گرفتن مستقیم بدون ETL بسیار پر رنگ شده است.
یکی از قدرتمندترین ابزارهای SQL Server برای این منظور PolyBase است.
PolyBase به شما امکان میدهد دادههای خارجی را مانند جداول داخلی SQL Server بخوانید، ترکیب کنید و روی آنها کوئریهای T-SQL اجرا کنید. در واقع پلی میان SQL Server و Big Data ایجاد میکند.
PolyBase چیست؟
یک قابلیت در SQL Server است که به شما اجازه میدهد دادههای ذخیرهشده در منابع خارجی (On-Premise یا Cloud) را بدون نیاز به انتقال فیزیکی، مجازیسازی و Query کنید.
این ویژگی اولین بار در SQL Server 2016 معرفی شد و از SQL Server 2019 به بعد، گستردگی بیشتری در اتصال به دیتابیسها و سرویسها پیدا کرد.
مزایای PolyBase
- عدم نیاز به ETL → دادهها را مستقیماً از منبع میخوانید.
- کارایی بالا → بهینهسازی Query توسط SQL Server Optimizer.
- پشتیبانی از منابع متنوع → شامل Hadoop ,Oracle ,PostgreSQL ,MySQL ,MongoDB، Azure Blob و …
- یکپارچگی با T-SQL → میتوانید با همان دستورات استاندارد SQL روی منابع خارجی کار کنید.
- کاهش هزینه نگهداری دیتا → نیاز به نگهداری کپی از دادهها کمتر میشود.
معماری PolyBase
معماری PolyBase شامل اجزای زیر است:
- PolyBase Engine: پردازش Query و ایجاد Plan برای دادههای خارجی.
- DMS (Data Movement Service): انتقال دادهها بین SQL Server و منبع خارجی.
- External Table: نمایشی از دادههای خارجی که مانند جدول داخلی Query میشود.
- External Data Source: تعریف محل ذخیرهسازی داده خارجی.
نصب و فعالسازی PolyBase در SQL Server
-- فعالسازی PolyBase
EXEC sp_configure 'polybase enabled', 1;
RECONFIGURE;
در نسخههای جدید SQL Server، PolyBase به صورت Feature انتخابی در نصب SQL Server قابل فعالسازی است.
ایجاد اتصال به منابع خارجی با PolyBase
اتصال به Azure Blob Storage
-- ایجاد Credential
CREATE DATABASE SCOPED CREDENTIAL AzureBlobCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2025-01-01&ss=bfqt&srt=sco&sp=rlx&...';
-- منبع خارجی
CREATE EXTERNAL DATA SOURCE AzureBlobStorage
WITH (
TYPE = HADOOP,
LOCATION = 'wasbs://container@account.blob.core.windows.net/',
CREDENTIAL = AzureBlobCredential
);
-- فایل فرمت
CREATE EXTERNAL FILE FORMAT CsvFormat
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (FIELD_TERMINATOR = ',', FIRST_ROW = 2)
);
-- جدول خارجی
CREATE EXTERNAL TABLE SalesData (
SaleID INT,
ProductName NVARCHAR(100),
Quantity INT,
SaleDate DATE
)
WITH (
LOCATION = 'sales.csv',
DATA_SOURCE = AzureBlobStorage,
FILE_FORMAT = CsvFormat
);
اتصال به Oracle یا MySQL
-- Credential
CREATE DATABASE SCOPED CREDENTIAL OracleCredential
WITH IDENTITY = 'dbuser', SECRET = 'dbpassword';
-- Data Source
CREATE EXTERNAL DATA SOURCE OracleDB
WITH (
TYPE = RDBMS,
LOCATION = 'oracle://oracleserver.com:1521',
DATABASE_NAME = 'HR',
CREDENTIAL = OracleCredential
);
-- External Table
CREATE EXTERNAL TABLE OracleEmployees (
EmpID INT,
EmpName NVARCHAR(100),
Department NVARCHAR(50)
)
WITH (DATA_SOURCE = OracleDB);
Query روی داده خارجی
-- ساده
SELECT TOP 10 * FROM SalesData;
-- ترکیب داده داخلی و خارجی
SELECT e.EmpName, d.DepartmentName, s.SaleDate
FROM OracleEmployees e
JOIN Departments d ON e.Department = d.DepartmentID
JOIN SalesData s ON e.EmpID = s.SaleID;
کاربردهای PolyBase در سازمانها
- BI و Analytics → اتصال مستقیم Power BI به External Tableها
- دادههای ترکیبی → تجزیه و تحلیل همزمان دادههای داخلی و ابری
- Data Lake Integration → اتصال SQL Server به Data Lake برای کاهش هزینههای Storage
- ETL سبک → حذف نیاز به SSIS یا Data Factory در بسیاری از سناریوها
محدودیتهای PolyBase
- در برخی موارد سرعت کمتر از ETL سنتی
- نیاز به تنظیمات امنیتی دقیق
- پشتیبانی متفاوت از منابع بسته به نسخه SQL Server
بهترین سناریوهای استفاده
- اتصال SQL Server به Azure Blob و Data Lake
- دسترسی سریع به دیتابیسهای خارجی بدون نیاز به Replication
- پروژههای Hybrid Cloud
- پردازش حجم بالای داده (Big Data Integration)
سوالات متداول (FAQ)
۱. آیا PolyBase جایگزین ETL است؟
خیر، برای Query مستقیم مناسب است؛ برای انتقال انبوه داده همچنان ETL بهتر است.
۲. در چه نسخههایی از SQL Server موجود است؟
از نسخه ۲۰۱۶ به بعد در SQL Server Enterprise و از ۲۰۱۹ در سایر نسخهها هم ارائه شد.
۳. آیا PolyBase نیاز به لایسنس جدا دارد؟
خیر، بخشی از SQL Server است، اما برخی کانکتورها ممکن است محدودیت نسخه داشته باشند.
تماس و مشاوره با لاندا
اگر سازمان شما نیاز به یکپارچهسازی دادهها، طراحی Data Lake و راهاندازی PolyBase دارد،
تیم متخصص لاندا آماده است تا با مشاوره، پیادهسازی و پشتیبانی ۲۴/۷، بهترین راهکارهای دادهمحور را در اختیار شما قرار دهد.
همین حالا با لاندا تماس ✆ بگیرید و از تحلیل سریع و هوشمند دادهها لذت ببرید.
نظری داده نشده