Power BI Desktop에서 DirectQuery 사용Use DirectQuery in Power BI Desktop

Power BI Desktop을 사용하여 데이터 원본에 연결할 때 항상 데이터의 복사본을 Power BI Desktop으로 가져올 수 있습니다.With Power BI Desktop, when you connect to your data source, it is always possible to import a copy of the data into the Power BI Desktop. 일부 데이터 원본의 경우 다른 방법을 사용할 수 있습니다. DirectQuery를 사용하여 데이터 원본에 직접 연결합니다.For some data sources, an alternative approach is available: connect directly to the data source using DirectQuery.

지원되는 데이터 원본Supported Data Sources

DirectQuery를 지원하는 데이터 원본의 전체 목록을 보려면 DirectQuery에서 지원하는 데이터 원본을 참조하세요.For a full listing of data sources that support DirectQuery, see Data sources supported by DirectQuery.

DirectQuery를 사용하여 연결하는 방법How to Connect using DirectQuery

데이터 가져오기를 사용하여 DirectQuery에서 지원하는 데이터 원본에 연결할 때 연결할 방법을 선택하는 연결 창이 나타납니다.When you use Get Data to connect to a data source supported by DirectQuery, the connection window lets you select how you want to connect.

가져오기DirectQuery를 선택하는 차이점은 다음과 같습니다.The differences between selecting Import and DirectQuery are the following:

가져오기 – 선택한 테이블 및 열을 Power BI Desktop으로 가져옵니다.Import – the selected tables and columns are imported into Power BI Desktop. 시각화를 만들거나 상호 작용할 때 Power BI Desktop은 가져온 데이터를 사용합니다.As you create or interact with a visualization, Power BI Desktop uses the imported data. 전체 데이터 집합을 다시 가져오는 데이터를 새로 고쳐서 초기 가져오기 또는 최신 새로 고침 이후에 기본 데이터에 발생한 변경 내용을 보아야 합니다.You must refresh the data, which imports the full data set again, to see any changes that occurred to the underlying data since the initial import or the most recent refresh.

DirectQueryPower BI Desktop에 데이터를 가져오거나 복사하지 않습니다.DirectQuery – no data is imported or copied into Power BI Desktop. 관계형 원본의 경우 선택한 테이블 및 열이 필드 목록에 표시됩니다.For relational sources, the selected tables and columns appear in the Fields list. SAP Business Warehouse와 같은 다차원 원본의 경우 선택한 큐브의 차원 및 측정값이 필드 목록에 나타납니다.For multi-dimensional sources like SAP Business Warehouse, the dimensions and measures of the selected cube appear in the Fields list. 시각화를 만들거나 상호 작용할 때 Power BI Desktop은 기본 데이터 원본을 쿼리하므로 항상 현재 데이터를 볼 수 있습니다.As you create or interact with a visualization, Power BI Desktop queries the underlying data source, which means you’re always viewing current data.

여러 데이터 모델링 및 데이터 변환은 몇 가지 제한 사항이 있는 DirectQuery를 사용할 때 사용할 수 있습니다.Many data modeling and data transformations are available when using DirectQuery, though with some limitations. 시각화를 만들거나 상호 작용할 때 기본 원본은 쿼리되어야 하고 시각화를 새로 고치는 데 필요한 시간은 기본 데이터 원본의 성능에 따라 달라집니다.When creating or interacting with a visualization, the underlying source must be queried and the time necessary to refresh the visualization is dependent on the performance of the underlying data source. 데이터가 최근에 요청된 서비스에 필요할 때 Power BI Desktop은 시각화를 표시하는 데 필요한 시간을 줄이기 위해 최신 데이터를 사용합니다.When the data necessary to service the request has recently been requested, Power BI Desktop uses recent data to reduce the time required to display the visualization. 리본에서 새로 고침을 선택하는 작업은 모든 시각화가 최신 데이터로 새로 고쳐지도록 합니다.Selecting Refresh from the Home ribbon will ensure all visualizations are refreshed with current data.

Power BI 및 DirectQuery 문서에는 DirectQuery가 자세히 설명되어 있습니다.The Power BI and DirectQuery article describes DirectQuery in detail. 또한 DirectQuery를 사용하는 경우 이점, 제한 사항 및 중요 고려 사항에 대한 자세한 내용은 다음 섹션을 참조하세요.Also, see the following sections for more information about benefits, limitations, and important considerations when using DirectQuery.

DirectQuery 사용의 이점Benefits of using DirectQuery

DirectQuery를 사용하는 경우 몇 가지 이점이 있습니다.There are a few benefits to using DirectQuery:

  • DirectQuery를 사용하면 매우 큰 데이터 집합에 대한 시각화를 구축할 수 있습니다. 그렇지 않으면 사전 집계를 사용하여 모든 데이터를 처음 가져오는 작업을 실행할 수 없습니다.DirectQuery lets you build visualizations over very large datasets, where it otherwise would be unfeasible to first import all of the data with pre-aggregation
  • 기본 데이터를 변경하려면 데이터를 새로 고쳐야 할 수 있으며, 일부 보고서의 경우 현재 데이터를 표시하려면 대량의 데이터 전송이 필요할 수 있으므로 데이터 다시 가져오기를 실행할 수 없습니다.Underlying data changes can require a refresh of data, and for some reports, the need to display current data can require large data transfers, making re-importing data unfeasible. 이와 반대로 DirectQuery 보고서는 항상 현재 데이터를 사용합니다.By contrast, DirectQuery reports always use current data
  • 1GB 데이터 집합 제한은 DirectQuery에 적용되지 않습니다.The 1 GB dataset limitation does not apply to DirectQuery

DirectQuery의 제한 사항Limitations of DirectQuery

현재 DirectQuery를 사용하는 데 몇 가지 제한 사항이 있습니다.There are currently a few limitations to using DirectQuery:

  • 모든 테이블은 단일 데이터베이스에서 가져와야 합니다.All tables must come from a single database
  • 쿼리 편집기 쿼리가 너무 복잡하면 오류가 발생합니다.If the Query Editor query is overly complex, an error will occur. 오류를 수정하려면 쿼리 편집기에서 문제가 되는 단계를 삭제하거나, DirectQuery를 사용하지 않고 데이터를 가져옵니다.To remedy the error you must either delete the problematic step in Query Editor, or Import the data instead of using DirectQuery. SAP Business Warehouse와 같은 다차원 원본의 경우 쿼리 편집기가 없습니다.For multi-dimensional sources like SAP Business Warehouse, there is no Query Editor
  • 관계 필터링은 양방향이 아닌 단일 방향으로 제한됩니다(미리 보기 기능으로 DirectQuery에 대한 양방향 교차 필터링을 사용하도록 설정하는 것은 가능).Relationship filtering is limited to a single direction, rather than both directions (though it is possible to enable cross filtering in both directions for DirectQuery as a Preview feature). SAP Business Warehouse와 같은 다차원 원본의 경우 모델에 정의된 관계가 없습니다.For multi-dimensional sources like SAP Business Warehouse, there are no relationships defined in the model
  • 시간 인텔리전스 기능은 DirectQuery에서 사용할 수 없습니다.Time intelligence capabilities are not available in DirectQuery. 예를 들어 날짜 열의 특별한 처리(예: 년, 분기, 월, 일 등)는 DirectQuery 모드에서 지원되지 않습니다.For example, special treatment of date columns (year, quarter, month, day, so on) are not supported in DirectQuery mode.
  • 기본적으로 측정값에 허용된 DAX 식에 제한이 적용됩니다. 자세한 내용은 다음 단락(이 글머리 기호 목록 이후)을 참조하세요.By default, limitations are placed on DAX expressions allowed in measures; see the following paragraph (after this bulleted list) for more information
  • DirectQuery를 사용하는 경우 데이터 반환에 대한 백만 행 제한이 있습니다.There is a 1 million row limit for returning data when using DirectQuery. 이 제한은 반환된 행에만 영향을 주고 DirectQuery를 사용하여 반환된 데이터 집합을 만드는 데 사용되는 집계 또는 계산에 영향을 주지 않습니다.This does not affect aggregations or calculations used to create the dataset returned using DirectQuery, only the rows returned. 예를 들어 Power BI에 반환된 데이터가 백만 행보다 작은 데이터 소스에 실행되는 쿼리를 사용해 천만 행을 집계하여 DirectQuery를 사용해 Power BI에 해당 집계 결과를 정확하게 반환할 수 있습니다.For example, you can aggregate 10 million rows with your query that runs on the data source, and accurately return the results of that aggregation to Power BI using DirectQuery as long as the data returned to Power BI is less than 1 million rows. DirectQuery에서 백만 행 이상이 반환된다면 Power BI는 오류를 반환합니다.If more than 1 million rows would be returned from DirectQuery, Power BI returns an error.

기존 데이터 원본에 전송된 쿼리의 성능이 적절한지 확인하기 위해 기본적으로 측정값에 제한이 적용됩니다.To ensure that queries sent to the underlying data source have acceptable performance, limitations are imposed on measures by default. 고급 사용자는 파일 > 옵션을 선택하고, 설정 > 옵션 및 설정 > DirectQuery를 차례로 선택한 다음, DirectQuery 모드에서 제한되지 않은 측정값 허용 옵션을 선택하여 이러한 제한 사항을 무시하도록 선택할 수 있습니다.Advanced users can choose to bypass this limitation by selecting File > Options and then Settings > Options and settings > DirectQuery, then selecting the option Allow unrestricted measures in DirectQuery mode. 해당 옵션이 선택되어 있으면 측정값에 대해 올바른 모든 DAX 식을 사용할 수 있습니다.When that option is selected, any DAX expression that is valid for a measure can be used. 단, 사용자는 데이터를 가져올 때 매우 잘 수행되는 일부 식으로 인해 DirectQuery 모드에서 백 엔드 원본에 대한 쿼리가 매우 느려질 수 있음을 인지하고 있어야 합니다.Users must be aware, however, that some expressions that perform very well when the data is imported may result in very slow queries to the backend source when in DirectQuery mode.

DirectQuery를 사용하는 경우 중요 고려 사항Important considerations when using DirectQuery

DirectQuery를 사용하는 경우 다음 세 가지 사항을 고려해야 합니다.The following three points should be taken into consideration when using DirectQuery:

  • 성능 및 부하 - 모든 DirectQuery 요청은 원본 데이터베이스로 보내지므로 시각적 개체를 새로 고치는 데 필요한 시간은 백 엔드 원본이 쿼리(또는 복수의 쿼리)의 결과로 응답하는 데 걸리는 시간에 따라 달라집니다.Performance and load - All DirectQuery requests are sent to the source database, so the time required to refresh a visual is dependent on how long that back-end source takes to respond with the results from the query (or queries). 시각적 개체에 대한 DirectQuery 사용에 권장되는 응답 시간(반환되는 요청된 데이터)은 30초의 최대 권장 결과 응답 시간과 함께 5초 이하입니다.The recommended response time (with requested data being returned) for using DirectQuery for visuals is five seconds or less, with a maximum recommended results response time of 30 seconds. 더 긴 경우 보고서를 사용하는 사용자의 경험은 크게 저하됩니다.Any longer, and the experience of a user consuming the report becomes unacceptably poor. 또한 보고서가 Power BI 서비스에 게시되면 몇 분 이상 더 오래 걸리는 모든 쿼리는 시간 제한되며 사용자에게 오류가 나타납니다.In addition, once a report is published to the Power BI service, any query that takes longer than a few minutes will timeout, and the user will receive an error.

    원본 데이터베이스에 대한 로드는 게시된 보고서를 사용하는 Power BI 사용자의 수에 따라 고려해야 합니다.Load on the source database should also be considered, based on the number of Power BI users who will consume the published report. 행 수준 보안(RLS) 사용도 또한 중요한 영향을 줄 수 있으며 여러 사용자에서 공유되는 비 RLS 대시보드 타일은 데이터베이스에 대한 단일 쿼리를 가져오지만 대시보드 타일에 대한 RLS 사용은 일반적으로 사용자당 하나의 쿼리가 필요한 타일의 새로 고침을 의미하므로 원본 데이터베이스에 부하가 크게 증가하고 성능에 잠재적인 영향을 줍니다.Using Row Level Security (RLS) can have a significant impact as well; a non-RLS dashboard tile shared by multiple users results in a single query to the database, but using RLS on a dashboard tile usually means the refresh of a tile requires one query per user, thus significantly increasing load on the source database and potentially impacting performance.

    Power BI는 최대한 효율적으로 쿼리를 만듭니다.Power BI creates queries that are as efficient as possible. 그러나 특정 상황에서 생성된 쿼리는 실패하는 새로 고침을 방지하는 데 효율성이 충분하지 않습니다.Under certain situations however, the generated query may not be efficient enough to avoid refresh that would fail. 이러한 상황의 한 예는 생성된 쿼리가 백 엔드 데이터 원본에서 과도하게 많은 수의 행(백만 개 이상)을 검색하는 경우입니다. 이 경우 다음 오류가 발생합니다.One example of this situation is when a generated query would retrieve an excessively large number of rows (more than 1 million) from the back-end data source, in which case the following error occurs:

    The resultset of a query to external data source has exceeded
    the maximum allowed size of '1000000' rows.
    

    이 상황은 집계 옵션이 요약하지 않음으로 설정된 매우 높은 카디널리티 열을 포함하는 간단한 차트로 발생할 수 있습니다.This situation can occur with a simple chart that includes a very high cardinality column, with the aggregation option set to Don’t Summarize. 시각적 개체는 백만 개 아래의 카디널리티를 가진 열이 있거나 적절한 필터가 적용되어야 합니다.The visual needs to only have columns with a cardinality below 1 million, or must have appropriate filters applied.

  • 보안 - 게시된 보고서를 사용하는 모든 사용자는 Power BI 서비스에 게시 후 입력한 자격 증명을 사용하여 백 엔드 데이터 원본에 연결합니다.Security - All users who consume a published report connect to the back-end data source using the credentials entered after publication to the Power BI service. 가져온 데이터와 같은 상황입니다. 모든 사용자는 백 엔드 원본에 정의된 모든 보안 규칙에 관계 없이 동일한 데이터를 봅니다.This is the same situation as data that is imported: all users see the same data, irrespective of any security rules defined in the backend source. 사용자별 보안을 원하는 고객은 DirectQuery 원본을 사용하여 구현하고 RLS를 사용합니다.Customers who want per-user security implement with DirectQuery sources and use RLS. RLS에 대해 자세히 알아보세요.Learn more about RLS.
  • 지원되는 기능 - Power BI Desktop의 모든 기능은 DirectQuery 모드에서 지원되지 않거나 몇 가지 제한이 있습니다.Supported features - Not all features in Power BI Desktop are supported in DirectQuery mode, or have some limitations. 또한 Power BI 서비스에서 DirectQuery를 사용하는 데이터 집합에 대해 사용할 수 없는 일부 기능(예: 신속한 정보 활용)이 있습니다.In addition, there are some capabilities in the Power BI service (such as Quick Insights) that are not available for datasets using DirectQuery. 따라서 DirectQuery를 사용할 때 이러한 기능의 제한을 DirectQuery의 사용 여부를 결정할 때 고려해야 합니다.As such, the limitation of such features when using DirectQuery should be taken into consideration when determining whether to use DirectQuery.

Power BI 서비스에 게시Publish to the Power BI service

DirectQuery를 사용하여 만든 보고서는 Power BI 서비스에 게시할 수 있습니다.Reports created using DirectQuery can be published to the Power BI Service.

사용하는 데이터 원본에 온-프레미스 데이터 게이트웨이(Azure SQL Database, Azure SQL Data Warehouse 또는 Redshift)가 필요하지 않을 경우 게시된 보고서가 Power BI 서비스에 표시되기 전에 자격 증명을 제공해야 합니다.If the data source used does not need the on-premises data gateway (Azure SQL Database, Azure SQL Data Warehouse, or Redshift), credentials must be provided before the published report will be displayed in the Power BI Service.

Power BI에서 설정 기어 아이콘을 선택하여 자격 증명을 제공한 다음 설정을 선택할 수 있습니다.You can provide credentials by selecting the Settings gear icon in Power BI, then select Settings.

Power BI는 설정 창을 표시합니다.Power BI displays the Settings window. 여기에서 데이터 집합 탭을 선택하고 DirectQuery를 사용하는 데이터 집합을 선택한 다음 자격 증명 편집을 선택합니다.From there, select the Datasets tab and choose the dataset that uses DirectQuery, and select Edit credentials.

자격 증명이 제공될 때까지 게시된 보고서를 열거나 DirectQuery 연결을 사용하여 만든 데이터 집합을 탐색하는 작업은 오류가 발생합니다.Until credentials are supplied, opening a published report or exploring a dataset created with a DirectQuery connection to such data sources results in an error.

DirectQuery를 사용하는 Azure SQL Database, Azure SQL Data WarehouseRedshift 이외의 데이터 원본의 경우 온-프레미스 데이터 게이트웨이는 설치되어야 하고 데이터 원본을 등록하여 데이터 연결을 설정해야 합니다.For data sources other than Azure SQL Database, Azure SQL Data Warehouse and Redshift that use DirectQuery, an on-premises data gateway must be installed and the data source must be registered to establish a data connection. 자세한 내용은 온-프레미스 데이터 게이트웨이를 참조하세요.You can learn more about on-premises data gateway.

다음 단계Next steps

DirectQuery에 대한 자세한 내용은 다음 리소스를 확인하세요.For more information about DirectQuery, check out the following resources: