Skip to main content

ADF - basic pipeline

 Copy Activity - 



  • Source:

    • Azure Blob Storage: This is where the initial data resides. Blob storage is a highly scalable and durable storage solution for various data types, including files.

    • Source File (Zipped TSV): The specific data to be copied is a zipped file in Tab-Separated Values (TSV) format. This implies the data will need to be decompressed during the copy process.

  • Pipeline: This represents the overall orchestration of the data movement and transformation.

    • Linked Service (Source): This acts as a connection string or credential store that securely connects the pipeline to the Azure Blob Storage (the source). It defines how the pipeline can access the source data.

    • Source Data Set: This defines the structure, location, and format of the data in the source. It tells the Copy Activity what data to read from the Azure Blob Storage. In this case, it would specify the path to the zipped TSV file and indicate its format.

    • Copy Activity: This is the core component of the pipeline. Its purpose is to efficiently copy data from a source data store to a sink data store. It handles the actual data transfer, and often includes features like data mapping, type conversion, and potentially decompression/compression as needed. The small icons within the "Copy data" box suggest options for configuration, code view, and deletion.

    • Sink Data Set: Similar to the Source Data Set, this defines the structure, location, and format of where the data will be written. It tells the Copy Activity how to write the data to the Azure Data Lake.

    • Linked Service (Sink): This securely connects the pipeline to the Azure Data Lake (the sink). It defines how the pipeline can write data to the target.

  • Sink:

    • Azure Data Lake: This is the destination for the copied data. Azure Data Lake is a comprehensive set of capabilities for big data analytics, offering massive scalability for data storage and processing.

    • Target File (TSV): The final output is a TSV file, suggesting that the zipped TSV from the source has been decompressed and saved in its original TSV format in the Azure Data Lake

  • 1. Azure Data Factory Interface:

    • The top bar shows "Microsoft Azure" and "Data Factory" with the name of the Data Factory being "covid-reporting-adf".

    • Standard ADF menu options like "Publish all", "Discard all", "Data flow debug", and "ARM template" are present.

    • The user's account "az.admin@outlook.com" is visible on the top right.

    2. Factory Resources (Left Panel):

    • Pipelines:

      • pi_ingest_population_data (the pipeline currently open)

    • Datasets:

      • ds_population_raw_gz

      • ds_population_raw_tsv (likely related to TSV files, as discussed previously)

    • Data flows: (No data flows are listed as active or created here, though the tab exists.)

    3. Activities Panel:

    • It shows a list of activities that can be dragged into the pipeline canvas. In this view, "General" activities like "Web" and "Webhook" are expanded.

    4. Pipeline Canvas (pi_ingest_population_data):

    • This is the main workspace where the pipeline's flow is designed.

    • The pipeline consists of three main activities connected sequentially:

      • Validation (Check If File Exists): This activity likely checks for the existence of a specific file or set of files at the source.

      • Get Metadata (Get File Metadata): If the file exists, this activity probably retrieves metadata about that file, such as its size, last modified date, or schema.

      • If Condition (If Column Count Matches): This activity introduces conditional logic. It suggests that a check is performed on the metadata obtained from the "Get Metadata" activity, specifically comparing a column count.

        • True Branch: "No activities" - meaning if the column count matches, no further activities are currently defined in this branch. This might be a placeholder, or the success condition simply ends the flow here.

        • False Branch: "No activities" - similarly, if the column count does not match, no specific actions are defined yet. This might indicate an incomplete pipeline or an intended failure/alerting mechanism that hasn't been implemented visually.

    5. Pipeline Run Details (Bottom Panel):

    • This panel shows the output of a debug pipeline run.

    • Pipeline run ID: 2a25017a-e4f4-40d0-9923-f02319c3b643

    • It lists the activities that were executed during this run:

      • If Column Count Matches (Type: IfCondition): Succeeded. This indicates the condition evaluated to True.

      • Get File Metadata (Type: GetMetadata): Succeeded.

      • Check If File Exists (Type: Validation): Succeeded.

    • All activities show a "Succeeded" status, meaning the pipeline run completed without errors.

    • The Run start, Duration, Status, Integration runtime, and Run ID are provided for each activity. The integration runtime used was DefaultIntegrationRuntime (UK South).

    Inference about the pipeline's purpose:

    This pipeline appears to be designed for pre-ingestion validation of data files. It checks if a required file exists and then performs a structural validation (like checking if the number of columns is as expected) before potentially proceeding with the actual data ingestion (which would be in the "True" branch if fully implemented). The ds_population_raw_tsv dataset suggests it might be validating a TSV file.


    if the pipeline gets fail 

    2. delete Activity 

    "Delete Activity" in Azure Data Factory (ADF) is a powerful tool used to remove files or folders from various storage locations, both cloud-based and on-premises. It's commonly employed for:

    • Cleanup: Deleting temporary files, staging data after processing, or old logs.

    • Archiving: Removing original source files after they've been successfully copied and processed elsewhere.

    • Data Lifecycle Management: Periodically clearing out old data based on modification dates or other criteria.

    Here's how it works and key aspects:

    1. How to Add and Configure a Delete Activity:

    • Drag and Drop: In your ADF pipeline canvas, search for "Delete" in the Activities pane (usually under "General") and drag it onto the canvas.

    • Source Tab Configuration:

      • Dataset: You need to link a Dataset that points to the files or folders you want to delete. This dataset defines the connection to your storage (e.g., Azure Blob Storage, Azure Data Lake Storage, File System, FTP, sFTP, Amazon S3) and the path to the items to be deleted.

      • File Path Type: You can specify the files to delete in several ways:

        • File path in dataset: The dataset directly specifies the file or folder.

        • Wildcard file path: Use wildcards (e.g., *.txt, folder/*) to delete multiple files or contents of a folder.

        • List of files: Provide a list of specific file names to delete.

      • Filter by last modified: You can filter files based on their last modified date (start and end times) to delete only older or newer files.

      • Recursively: If enabled, this option allows the Delete Activity to delete contents within subfolders as well as the main folder. If you want to delete the folder itself along with its contents, this option is crucial.

      • Max concurrent connections: Controls the number of parallel connections for the delete operation.

    • Logging Settings (Optional but Recommended):

      • You can enable logging to keep a record of which files or folders were deleted.

      • You'll need to specify a separate storage account and linked service to store these log files (e.g., a CSV file). This is important for auditing and troubleshooting. Crucially, ensure the logging account is not pointing to the same folder you are trying to delete!

    2. Key Considerations and Best Practices:

    • Permissions: The Linked Service used by the Delete Activity must have write (delete) permissions on the target storage location.

    • Backup: Always back up your files before using the Delete Activity, especially in production environments, as deleted files are generally not recoverable unless soft-delete is enabled on your storage account.

    • Concurrent Operations: Avoid deleting files that are actively being written to by other processes to prevent errors or data corruption.

    • Error Handling: The Delete Activity will often succeed even if the specified file or folder doesn't exist. This can be useful, but if you need to ensure the presence of the items before attempting deletion, consider using a "Get Metadata" activity with an "Exists" property check, followed by an "If Condition" activity to control the flow.

    • Deleting Empty Folders: To delete an empty folder in Azure Blob Storage, you might encounter issues if using a Blob Storage linked service. It's often recommended to use an Azure Data Lake Storage (ADLS) Gen2 linked service for better folder management, as ADLS handles directories differently.

    • Parameterization: Leverage parameters in your datasets and pipelines to make the Delete Activity dynamic. This allows you to delete different files or folders based on pipeline parameters (e.g., dates, specific file names).

    • Chaining with Copy Activity: A common pattern is to use a Copy Activity to move files to another location (e.g., an archive) and then use a Delete Activity to remove the original files from the source.

    The Delete Activity is a fundamental part of many ADF pipelines, enabling efficient and automated data management and cleanup.

    Triggers :
     



    different types of "Triggers" in Azure Data Factory (ADF) or a similar data orchestration service. Triggers are essential components that determine when and how a pipeline (a series of activities to perform a task) should execute.

    Here's an explanation of each trigger type presented:

    1. Schedule Trigger:

      • Icon: A calendar.

      • Explanation: This is the simplest and most common type of trigger. A Schedule Trigger allows you to run a pipeline on a predefined, recurring schedule.

      • Use Cases:

        • Daily data ingestion at a specific time (e.g., every morning at 3 AM).

        • Hourly data processing.

        • Weekly or monthly reports generation.

      • Configuration: You define the start date/time, recurrence (e.g., every 1 hour, every day, every Monday), and end date/time (optional).

    2. Tumbling Window Trigger:

      • Icon: A pizza slice (often interpreted as segments or windows).

      • Explanation: A Tumbling Window Trigger fires at a regular, fixed time interval (a "window") and maintains a state. It's designed for scenarios where you need to process data in contiguous, non-overlapping time slices. Each window has a fixed size, and subsequent windows are processed immediately after the previous one completes (or at its scheduled time).

      • Key Characteristics:

        • Contiguous: Windows don't overlap.

        • Non-overlapping: Each piece of data belongs to exactly one window.

        • Stateful: It remembers the last successfully processed window, which is crucial for handling late-arriving data or re-running failed windows.

        • Dependency Management: Can be configured to depend on the successful completion of previous windows or other triggers.

      • Use Cases:

        • Processing historical data in fixed-size chunks (e.g., hourly sales data, daily sensor readings).

        • Aggregating data over specific time periods.

        • Backfilling missing data by rerunning specific failed windows.

      • Configuration: You define the start time, the size of the window (e.g., 1 hour, 24 hours), and optionally dependencies.

    3. Event Trigger:

      • Icon: Two documents, one with a red "X" over it (often signifying a change, creation, or deletion event).

      • Explanation: An Event Trigger (specifically, a Storage Event Trigger in ADF) initiates a pipeline run in response to specific events occurring in a storage account. This is ideal for reactive data processing.

      • Use Cases:

        • Triggering a data ingestion pipeline when a new file arrives in a specific Azure Blob Storage container.

        • Processing an image as soon as it's uploaded.

        • Archiving a file when it's deleted from a particular folder.

      • Configuration: You specify the storage account, container, folder path (optional, with wildcards), and the type of event to listen for (e.g., "Blob created", "Blob deleted"). ADF uses Azure Event Grid under the hood for this functionality.

    In summary, these three trigger types provide different mechanisms for automating pipeline execution based on time, windowed processing, or external events, offering flexibility for various data integration and processing scenarios.


    after creating triggers, we need to connect with the pipeline.


    after creating the pipeline and linked with trigger, no we run the pipeline and we need to monitor , go to monitor tab , where we can monitor all the pipeline runs .



    Okay, I understand. You're looking for common scenario-based interview questions related to Azure Data Factory (ADF) and data engineering, along with potential answers.

    These types of questions are designed to assess your problem-solving skills, your understanding of ADF features, and your ability to apply theoretical knowledge to real-world situations.

    Let's break down some common scenarios and how to approach answering them.


    General Tips for Answering Scenario Questions:

    1. Understand the Core Problem: What is the interviewer trying to achieve? Data ingestion, transformation, cleanup, reporting?

    2. Identify Key ADF Components: Which activities, linked services, datasets, and triggers would be relevant?

    3. Consider Best Practices: Think about scalability, reliability, error handling, monitoring, and cost-effectiveness.

    4. Walk Through the Solution Logically: Explain your steps from source to destination.

    5. Justify Your Choices: Why did you pick a particular activity or approach over another?

    6. Mention Alternatives (if applicable): Briefly discuss other ways to solve the problem and why you chose your primary solution.

    7. Address Edge Cases/Error Handling: How would you deal with failures, late-arriving data, or invalid data?

    8. Keep it Concise but Comprehensive: Don't ramble, but ensure you cover the critical aspects.


    Scenario Questions & Answers:

    Scenario 1: Daily Incremental Data Load from On-Premises SQL to Azure SQL Database

    Question: "You have an on-premises SQL Server database, and you need to load new and updated records (incremental data) daily into an Azure SQL Database. Describe your ADF pipeline design, including how you handle the incremental load and ensure data consistency."

    Answer Breakdown:

    1. Goal: Incremental load from on-prem SQL to Azure SQL.

    2. Key ADF Components: Self-hosted Integration Runtime (SHIR), Lookup Activity, Copy Activity, Stored Procedure Activity, Triggers.

    3. Incremental Strategy: Watermark column (e.g., LastModifiedDate or an ID).

    Detailed Answer:

    "Okay, for a daily incremental load from on-premises SQL Server to Azure SQL Database, I would design the ADF pipeline as follows:

    • Integration Runtimes:

      • I'd set up a Self-Hosted Integration Runtime (SHIR) on a machine within the on-premises network. This SHIR will securely connect to the on-premises SQL Server without opening firewall ports.

      • The Azure Data Factory (managed) IR would be used for connecting to Azure SQL Database.

    • Linked Services:

      • Two SQL Server Linked Services: one pointing to the on-premises SQL Server (using the SHIR) and another pointing to the Azure SQL Database (using Azure IR).

    • Datasets:

      • Two SQL Server Datasets: one for the source table(s) on-premises and one for the destination table(s) in Azure SQL DB.

    • Pipeline Design:

      1. Lookup Activity (Get Watermark):

        • The first step would be a Lookup Activity targeting the Azure SQL Database.

        • This Lookup would query a dedicated 'Watermark Table' (e.g., ADF_Watermark_Table) in Azure SQL DB to retrieve the LastProcessedHighWatermark value (e.g., the maximum LastModifiedDate or MaxID from the previous successful run). If this is the first run, the watermark would be an initial low value (e.g., 1900-01-01).

      2. Copy Activity (Incremental Data Load):

        • Next, a Copy Activity would execute.

        • Source: The source dataset would be configured with a query like:

          SQL
          SELECT * FROM [YourOnPremTable] WHERE LastModifiedDate > '@{activity('Get Watermark').output.firstRow.LastProcessedHighWatermark}' AND LastModifiedDate <= GETDATE()
          

          (Adjust GETDATE() to UTC if applicable). This query dynamically fetches only records newer than the last processed watermark.

        • Sink: The sink would be the Azure SQL Database table.

          • Write Behavior: I'd choose 'Upsert' (if supported by the sink connector and table schema, requiring a unique key) or 'Stored Procedure' for more complex merge logic. If simple append is sufficient, 'Insert' could be used, but this doesn't handle updates. For true updates, a staging table followed by a MERGE statement via a Stored Procedure is often robust.

          • Schema Mapping: Ensure proper column mapping between source and sink.

      3. Lookup Activity (Get New Watermark):

        • After the Copy Activity, another Lookup Activity would query the on-premises source table to find the new highest LastModifiedDate (or MaxID) from the data just copied. This ensures we capture the latest watermark from the source.

      4. Stored Procedure Activity (Update Watermark):

        • Finally, a Stored Procedure Activity would be called on the Azure SQL Database.

        • This stored procedure would update the ADF_Watermark_Table with the newHighWatermark obtained from the previous Lookup Activity. This is crucial for the next incremental run.

    • Error Handling & Monitoring:

      • I'd add a Fail activity or Web Activity to trigger alerts (e.g., to Azure Monitor, Logic Apps, or Teams) if any activity within the pipeline fails.

      • I'd monitor pipeline runs via the ADF monitoring blade.

    • Scheduling:

      • A Schedule Trigger would be used to run this pipeline daily at a specified time (e.g., after typical business hours).

    • Considerations:

      • Initial Load: For the very first load, the LastProcessedHighWatermark would be a very old date or 0, effectively pulling all historical data.

      • Deleted Records: This approach doesn't handle deleted records in the source. If deletions need to be replicated, a different strategy (e.g., soft deletes, change data capture (CDC), or full table refresh with comparison) would be needed.

      • Data Types: Ensure data type compatibility between source and sink, and handle any necessary conversions in the Copy Activity mapping.

    This design provides a robust, scalable, and auditable solution for daily incremental data loading."

    Scenario 2: Processing Files Arriving in Azure Blob Storage

    Question: "A third-party vendor drops CSV files containing sales data into a specific folder in your Azure Blob Storage throughout the day. You need to process these files as they arrive, transform them, and load them into a data warehouse (Azure Synapse Analytics). How would you design this in ADF?"

    Answer Breakdown:

    1. Goal: Event-driven processing of CSV files, transformation, load to Synapse.

    2. Key ADF Components: Event Trigger, Copy Activity, Data Flow, Stored Procedure Activity, Web Activity (for Synapse SQL Pool).

    3. Transformation: Data Flow (preferred for complex ETL).

    Detailed Answer:

    "For processing CSV files as they arrive in Azure Blob Storage and loading them into Azure Synapse Analytics, an Event-driven architecture using an Event Trigger is the most suitable approach.

    • Linked Services:

      • Azure Blob Storage Linked Service.

      • Azure Synapse Analytics Linked Service (pointing to your SQL Pool).

    • Datasets:

      • Azure Blob Storage Dataset pointing to the folder where CSV files are dropped.

      • Azure Synapse Analytics Dataset for the target table.

    • Trigger:

      • I would configure an Event Trigger (specifically, a Storage Event Trigger).

      • This trigger would monitor the specific Azure Blob Storage container and folder path.

      • It would be set to fire upon Blob created events, meaning the pipeline will automatically start as soon as a new CSV file lands in that folder.

      • Crucially, I'd pass the blobName and folderPath from the trigger into the pipeline as parameters.

    • Pipeline Design:

      1. Get Metadata Activity (Optional, for Validation):

        • (Optional but good practice) A Get Metadata Activity could be used to check the size or existence of the file if there are specific requirements before processing.

      2. Data Flow Activity (Transformation):

        • A Data Flow Activity would be the core of the transformation logic. Data Flows are excellent for schema evolution, data cleansing, aggregations, and complex transformations without writing code.

        • Source Transformation: Read the incoming CSV file using the blobName passed from the trigger. I'd configure the source to infer schema or provide a defined schema.

        • Transformation Logic: Implement necessary transformations:

          • Derived Column: For data type conversions, adding new columns (e.g., a timestamp for processing time).

          • Filter: To remove bad records.

          • Aggregate: If any summarization is needed.

          • Lookup: To enrich data from other sources (e.g., dimension tables in Synapse).

          • Validation: Handle malformed rows (e.g., using a Split transformation to route good and bad records).

        • Sink Transformation: Load the transformed data into a staging table in Azure Synapse Analytics. Data Flows provide robust options for upsert, insert, or truncate and load. I would stage the data first for performance and atomicity.

      3. Copy Activity (Alternative for Simple Copy/Staging):

        • If transformations are minimal or can be handled by SQL, a Copy Activity could copy the CSV directly into an Azure Synapse Analytics staging table. The Copy Activity is highly optimized for bulk data movement.

        • For CSV to Synapse, I'd leverage PolyBase or the COPY statement behind the scenes for maximum performance.

      4. Stored Procedure Activity (Merge into Fact Table):

        • After staging, a Stored Procedure Activity would execute on the Azure Synapse Analytics SQL Pool.

        • This stored procedure would perform a MERGE operation (or INSERT INTO ... SELECT if only appending) from the staging table into the final fact table, handling updates and inserts based on business keys.

      5. Delete Activity (Cleanup):

        • Finally, a Delete Activity would remove the processed CSV file from the Azure Blob Storage source folder to prevent reprocessing and keep storage tidy.

    • Error Handling & Monitoring:

      • Each activity would be configured with proper on failure paths to log errors to a central logging table or send alerts (e.g., via Web Activity to Logic Apps for email/Teams notifications).

      • The Data Flow itself has excellent logging capabilities for row-level error handling.

      • Monitoring would be done via the ADF monitoring blade, focusing on trigger and pipeline runs.

    • Scalability: The Event Trigger and Data Flow/Copy Activities in ADF are designed to scale, allowing you to process many files concurrently. Synapse Analytics is also built for large-scale data warehousing.

    This event-driven approach ensures timely processing of new data, automates the entire workflow, and leverages ADF's native transformation capabilities."


    Scenario 3: Orchestrating a Complex Data Warehouse Load with Dependencies

    Question: "You have a nightly data warehouse load process in Azure Synapse Analytics that involves loading multiple dimension tables (e.g., DimProduct, DimCustomer) before loading the main fact tables (e.g., FactSales, FactOrders). Some dimension tables can be loaded concurrently, but all dimensions must be complete before any fact tables start. Fact tables can also be loaded concurrently. How would you design and orchestrate this using ADF?"

    Answer Breakdown:

    1. Goal: Orchestrate parallel and sequential loads with dependencies in Synapse.

    2. Key ADF Components: Execute Pipeline Activity, Set Variable Activity, Wait Activity, Stored Procedure Activity, Triggers.

    3. Orchestration Strategy: Parent-child pipelines, parallelism using ForEach, dependency management.

    Detailed Answer:

    "To orchestrate a complex nightly data warehouse load with dependencies in Azure Synapse Analytics, I would design a hierarchical ADF pipeline structure, leveraging parent-child pipelines and parallel execution.

    • Overall Strategy:

      • A Main Orchestration Pipeline to manage the entire process.

      • Separate Child Pipelines for each logical loading unit (e.g., 'Load DimProduct', 'Load FactSales'). This promotes reusability, modularity, and easier debugging.

    • Linked Services & Datasets:

      • Azure Synapse Analytics Linked Service.

      • No specific datasets are strictly needed if using Stored Procedure Activities for all loads, but they'd be used if Copy Activities or Data Flows were part of the individual table loads.

    • Pipeline Design:

      1. Main Orchestration Pipeline (e.g., PL_DW_NightlyLoad):

      • Start/Pre-Load Activities (Sequential):

        • Stored Procedure Activity: Execute a stored procedure in Synapse to perform pre-load tasks like truncate staging tables, disable indexes, or begin a transaction.

        • (Optional) Web Activity: Send a 'Load Started' notification.

      • Dimension Table Loading (Parallel within limits, but all complete before facts):

        • Execute Pipeline Activities (for independent dimensions):

          • I'd have multiple Execute Pipeline Activities running in parallel, each calling a dedicated child pipeline for dimension loading (e.g., PL_Load_DimProduct, PL_Load_DimCustomer, PL_Load_DimDate).

          • These activities would be configured to run concurrently.

          • Crucial: All these parallel Execute Pipeline activities would have a success dependency line leading to a single, subsequent Wait Activity or a Set Variable activity acting as a flag for completion.

        • For Dependent Dimensions: If DimGeography must load before DimCustomer, the Execute Pipeline for DimCustomer would have a success dependency on DimGeography.

      • Wait for All Dimensions:

        • All the parallel dimension loading activities would connect their success paths to a single, subsequent activity, which could be an If Condition or a Dummy Activity to ensure all dimensions are complete before proceeding.

        • Alternatively, you can just draw success lines from all parallel dimension pipelines to the first fact pipeline, and ADF will wait for all upstream activities to succeed.

      • Fact Table Loading (Parallel):

        • Similar to dimension loading, multiple Execute Pipeline Activities would run in parallel, each calling child pipelines for fact table loading (e.g., PL_Load_FactSales, PL_Load_FactOrders).

        • These would also be configured to run concurrently.

      • Post-Load Activities (Sequential):

        • Stored Procedure Activity: Execute a stored procedure to perform post-load tasks like rebuilding indexes, running statistics, or merging staging data into final tables.

        • (Optional) Web Activity: Send a 'Load Completed' or 'Load Failed' notification based on the overall pipeline status.

      2. Child Pipelines (e.g., PL_Load_DimProduct, PL_Load_FactSales):

      • Each child pipeline would be responsible for the specific load process of one table or a logical group of tables.

      • Typical Activities within a child pipeline:

        • Copy Activity: To land raw data into a staging area (if not already there).

        • Data Flow Activity: For complex transformations, data quality checks, and SCD (Slowly Changing Dimension) implementations.

        • Stored Procedure Activity: To execute T-SQL statements in Synapse for transformations, merges, aggregations, or managing table locks.

    • Error Handling & Monitoring:

      • Within Child Pipelines: Each child pipeline should have robust error handling (e.g., on failure paths to log errors to a control table, or using Fail activities with custom messages).

      • In Main Pipeline: The Main Orchestration Pipeline would also have on failure paths from its Execute Pipeline activities. If any child pipeline fails, the main pipeline can send an alert and potentially stop subsequent processing or trigger a rollback.

      • Comprehensive Logging: Implement a logging mechanism (e.g., a dedicated logging table in Synapse) to record the start/end times, status, and any error messages for each pipeline and activity run.

      • Azure Monitor: Utilize Azure Monitor alerts based on ADF pipeline failures or duration.

    • Scheduling:

      • A single Schedule Trigger (e.g., daily at midnight) would initiate the PL_DW_NightlyLoad (the main orchestration pipeline).

    • Benefits of this Approach:

      • Modularity: Easier to develop, test, and maintain individual loading processes.

      • Reusability: Child pipelines can be reused by other orchestration pipelines if needed.

      • Parallelism: Maximize throughput by running independent loads concurrently.

      • Dependency Management: Explicitly define the order of execution.

      • Clear Monitoring: See the status of the entire load from the main pipeline's perspective.

      • Scalability: ADF automatically handles the scaling of compute for activities.

    This structured approach ensures that your data warehouse load is efficient, robust, and manageable, providing clear visibility into the dependencies and progress of each stage."

    Comments

    Popular posts from this blog

    session 19 Git Repository

      🔁 Steps to Create a Branch in Databricks, Pull from Git, and Merge into a Collaborative Branch Create a New Branch in Databricks: Go to the Repos tab in your workspace. Navigate to the Git-linked repo. Click the Git icon (or three dots ⋮) and choose "Create Branch." Give your branch a name (e.g., feature-xyz ) and confirm. Pull the Latest Changes from Git: With your new branch selected, click the Git icon again. Select “Pull” to bring the latest updates from the remote repository into your local Databricks environment. Make Changes & Commit: Edit notebooks or files as needed in your branch. Use the "Commit & Push" option to push changes to the remote repo. Merge into the Collaborative Branch: Switch to the collaborative branch (e.g., dev or main ) in Git or from the Databricks UI. Click "Pull & Merge" . Choose the branch you want to merge into the collaborative branch. Review the c...

    Session 18 monitering and logging - Azure Monitor , Log analytics , and job notification

     After developing the code, we deploy it into the production environment. To monitor and logging the jobs run in the real time systems in azure  we have scheduled the jobs under the workflow , we haven't created any monitoring or any matrics . After a few times, the job failed, but we don't know because we haven't set up any monitoring, and every time we can't navigate to workspace-> workflows, under runs to see to check whether the job has been successfully running or not and in real time there will be nearly 100 jobs or more jobs to run  In real time, the production support team will monitor the process. Under the workflow, there is an option called Job notification. After setting the job notification, we can set a notification to email . if we click the date and time its takes us to the notebook which is scheduled there we can able to see the error where it happens . order to see more details, we need to under Spark tab, where we have the option to view logs ( tha...

    Transformation - section 6 - data flow

      Feature from Slide Explanation ✅ Code-free data transformations Data Flows in ADF allow you to build transformations using a drag-and-drop visual interface , with no need for writing Spark or SQL code. ✅ Executed on Data Factory-managed Databricks Spark clusters Internally, ADF uses Azure Integration Runtimes backed by Apache Spark clusters , managed by ADF, not Databricks itself . While it's similar in concept, this is not the same as your own Databricks workspace . ✅ Benefits from ADF scheduling and monitoring Data Flows are fully integrated into ADF pipelines, so you get all the orchestration, parameterization, logging, and alerting features of ADF natively. ⚠️ Important Clarification Although it says "executed on Data Factory managed Databricks Spark clusters," this does not mean you're using your own Azure Databricks workspace . Rather: ADF Data Flows run on ADF-managed Spark clusters. Azure Databricks notebooks (which you trigger via an "Exe...