Power BI Desktop에서 날짜 테이블 만들기Create date tables in Power BI Desktop

이 문서는 Power BI Desktop을 개발하는 데이터 모델러를 대상으로 합니다.This article targets you as a data modeler working with Power BI Desktop. 이 문서에서는 데이터 모델에서 날짜 테이블을 만들기 위한 디자인 모범 사례를 설명합니다.It describes good design practices for creating date tables in your data models.

DAX(Data Analysis Expressions) 시간 인텔리전스 함수를 사용하려면 모델 사전 요구 사항이 있습니다. 모델에 날짜 테이블 이 하나 이상 있어야 합니다.To work with Data Analysis Expressions (DAX) time intelligence functions, there's a prerequisite model requirement: You must have at least one date table in your model. 날짜 테이블은 다음 요구 사항을 충족하는 테이블입니다.A date table is a table that meets the following requirements:

  • 이 테이블에 데이터 형식 date(또는 date/time)의 열이 있어야 합니다. 이 열은 날짜 열 이라고 합니다.It must have a column of data type date (or date/time)—known as the date column.
  • 날짜 열에는 고유한 값이 있어야 합니다.The date column must contain unique values.
  • 날짜 열에는 공백이 포함되면 안됩니다.The date column must not contain BLANKs.
  • 날짜 열에는 누락된 날짜가 없어야 합니다.The date column must not have any missing dates.
  • 날짜 열은 전체 연도에 걸쳐 있어야 합니다.The date column must span full years. 연도는 반드시 역년(1월~12월)일 필요가 없습니다.A year isn't necessarily a calendar year (January-December).
  • 날짜 테이블은 날짜 테이블로 표시되어 있어야 합니다.The date table must be marked as a date table.

여러 가지 방법 중 하나를 사용하여 날짜 테이블을 모델에 추가할 수 있습니다.You can use any of several techniques to add a date table to your model:

  • 자동 날짜/시간 옵션The Auto date/time option
  • 날짜 차원 테이블에 연결하는 파워 쿼리Power Query to connect to a date dimension table
  • 날짜 테이블을 생성 파워 쿼리Power Query to generate a date table
  • 날짜 테이블을 생성하는 DAXDAX to generate a date table
  • 기존 날짜 테이블을 복제하는 DAXDAX to clone an existing date table

날짜 테이블은 아마도 모델에 추가하는 가장 일관적인 기능일 것입니다.A date table is perhaps the most consistent feature you'll add to any of your models. 또한 조직에서는 날짜 테이블을 일관되게 정의해야 합니다.What's more, within an organization a date table should be consistently defined. 따라서 사용하려는 기술에 관계없이 완전히 구성된 날짜 테이블을 포함하는 Power BI Desktop 템플릿을 만드는 것이 좋습니다.So, whatever technique you decide to use, we recommend you create a Power BI Desktop template that includes a fully configured date table. 조직의 모든 모델러와 템플릿을 공유합니다.Share the template with all modelers in your organization. 따라서 누군가가 새 모델을 개발하는 경우 지속적으로 정의된 날짜 테이블로 시작할 수 있습니다.So, whenever someone develops a new model, they can begin with a consistently defined date table.

자동 날짜/시간 사용Use Auto date/time

자동 날짜/시간 옵션은 편리하고 빠르고 사용하기 쉬운 시간 인텔리전스를 제공합니다.The Auto date/time option delivers convenient, fast, and easy-to-use time intelligence. 보고서 작성자는 달력 기간을 기준으로 필터링, 그룹화, 드릴 다운할 때 시간 인텔리전스를 사용할 수 있습니다.Reports authors can work with time intelligence when filtering, grouping, and drilling down through calendar time periods.

달력 기간으로 작업할 때와 시간과 관련하여 간단한 모델 요구 사항이 있는 경우에만 자동 날짜/시간 옵션을 사용하도록 설정하는 것이 좋습니다.We recommended that you keep the Auto date/time option enabled only when you work with calendar time periods, and when you have simplistic model requirements in relation to time. 임시 모델을 만들거나 데이터 탐색 또는 프로파일링을 수행하는 경우에도 이 옵션을 사용하는 것이 편리할 수 있습니다.Using this option can also be convenient when creating ad hoc models or performing data exploration or profiling. 그러나 이 방법은 필터를 여러 테이블에 전파할 수 있는 단일 날짜 테이블 디자인을 지원하지 않습니다.This approach, however, doesn't support a single date table design that can propagate filters to multiple tables. 자세한 내용은 Power BI Desktop의 자동 날짜/시간 지침을 참조하세요.For more information, see Auto date/time guidance in Power BI Desktop.

파워 쿼리를 사용하여 연결Connect with Power Query

데이터 원본에 이미 날짜 테이블이 있는 경우 모델 날짜 테이블의 원본으로 사용하는 것이 좋습니다.When your data source already has a date table, we recommend you use it as the source of your model date table. 일반적으로 데이터 웨어하우스에 연결하는 경우에는 날짜 차원 테이블이 포함됩니다.It's typically the case when you're connecting to a data warehouse, as it will have a date dimension table. 이러한 방식으로 모델은 조직의 시간에 대한 단일 소스를 활용합니다.This way, your model leverages a single source of truth for time in your organization.

DirectQuery 모델을 개발하면서 데이터 원본에 날짜 테이블이 포함되어 있지 않은 경우 데이터 원본에 날짜 테이블을 추가하는 것이 좋습니다.If you're developing a DirectQuery model and your data source doesn't include a date table, we strongly recommend you add a date table to the data source. 이 테이블은 날짜 테이블의 모든 모델링 요구 사항을 충족해야 합니다.It should meet all the modeling requirements of a date table. 그런 다음 파워 쿼리를 사용하여 날짜 테이블에 연결할 수 있습니다.You can then use Power Query to connect to the date table. 그러면 모델 계산이 DAX 시간 인텔리전스 기능을 활용할 수 있습니다.This way, your model calculations can leverage the DAX time intelligence capabilities.

파워 쿼리를 사용하여 생성Generate with Power Query

파워 쿼리를 사용하여 날짜 테이블을 생성할 수 있습니다.You can generate a date table using Power Query. 자세한 내용은 Chris Webb의 블로그 항목 Generating A Date Dimension Table In Power Query를 참조하세요.For more information, see Chris Webb's blog entry Generating A Date Dimension Table In Power Query.

조직에 시간에 대한 데이터 웨어하우스 또는 기타 일관된 정의가 없는 경우 파워 쿼리를 사용하여 데이터 흐름을 게시하는 것이 좋습니다.If you don't have a data warehouse or other consistent definition for time in your organization, consider using Power Query to publish a dataflow. 그런 다음 모든 데이터 모델러를 데이터 흐름에 연결하여 모델에 날짜 테이블을 추가합니다.Then, have all data modelers connect to the dataflow to add date tables to their models. 이 데이터 흐름은 조직의 시간에 대한 단일 소스가 됩니다.The dataflow becomes the single source of truth for time in your organization.

날짜 테이블을 생성해야 하는 경우 DAX를 사용하는 것이 좋습니다.If you need to generate a date table, consider doing it with DAX. 이 방법이 더 쉽게 느껴질 것입니다.You might find it's easier. 또한 DAX에는 날짜 테이블 만들기 및 관리를 간소화하는 몇 가지 기본 제공 인텔리전스가 포함되어 있기 때문에 더 편리할 수 있습니다.What's more, it's likely to be more convenient, because DAX includes some built-in intelligence to simplify creating and managing date tables.

DAX를 사용하여 생성Generate with DAX

CALENDAR 또는 CALENDARAUTO DAX 함수를 사용하여 계산 테이블을 만들어 모델에서 날짜 테이블을 생성할 수 있습니다.You can generate a date table in your model by creating a calculated table using either the CALENDAR or CALENDARAUTO DAX functions. 각 함수는 날짜의 단일 열 테이블을 반환합니다.Each function returns a single-column table of dates. 그런 다음 계산 열을 사용하여 계산 테이블을 확장해 날짜 간격 필터링 및 그룹화 요구 사항을 지원할 수 있습니다.You can then extend the calculated table with calculated columns to support your date interval filtering and grouping requirements.

  • 날짜 범위를 정의하려면 CALENDAR 함수를 사용합니다.Use the CALENDAR function when you want to define a date range. 시작 날짜와 종료 날짜 두 값을 전달합니다.You pass in two values: the start date and end date. 이러한 값은 MIN(Sales[OrderDate]) 또는 MAX(Sales[OrderDate]) 같은 다른 DAX 함수로 정의될 수 있습니다.These values can be defined by other DAX functions, like MIN(Sales[OrderDate]) or MAX(Sales[OrderDate]).
  • 날짜 범위가 모델에 저장된 모든 날짜를 자동으로 포함하게 하려면 CALENDARAUTO 함수를 사용합니다.Use the CALENDARAUTO function when you want the date range to automatically encompass all dates stored in the model. 연도의 종료 월인 단일 선택적 매개 변수를 전달할 수 있습니다. 연도가 12월로 끝나는 역년인 경우 값을 전달할 필요가 없습니다.You can pass in a single optional parameter that's the end month of the year (if your year is a calendar year, which ends in December, you don't need to pass in a value). 표시된 날짜 테이블에 대한 요구 사항인 전체 연도가 반환되도록 하기 때문에 유용한 함수입니다.It's a helpful function, because it ensures that full years of dates are returned—it's a requirement for a marked date table. 또한 테이블을 향후 연도로 연장하기 위한 관리가 필요 없습니다. 데이터 새로 고침이 완료되면 테이블 다시 계산이 트리거됩니다.What's more, you don't need to manage extending the table to future years: When a data refresh completes, it triggers the recalculation of the table. 새 연도의 날짜가 모델에 로드될 때 다시 계산하면 테이블의 날짜 범위가 자동으로 확장됩니다.A recalculation will automatically extend the table's date range when dates for a new year are loaded into the model.

DAX를 사용하여 복제Clone with DAX

모델에 이미 날짜 테이블이 있고 추가 날짜 테이블이 필요한 경우 기존 날짜 테이블을 쉽게 복제할 수 있습니다.When your model already has a date table and you need an additional date table, you can easily clone the existing date table. 날짜가 롤플레잉 차원인 경우가 그렇습니다.It's the case when date is a role playing dimension. 계산 테이블을 만들어 테이블을 복제할 수 있습니다.You can clone a table by creating a calculated table. 계산 테이블 식은 단순히 기존 날짜 테이블의 이름입니다.The calculated table expression is simply the name of the existing date table.

다음 단계Next steps

이 문서와 관련된 보다 자세한 내용을 알아보려면 다음 리소스를 참조하세요.For more information related to this article, check out the following resources: